public function action( string $tag, callable $fn, int $priority = 10, int $accepted_args = 1 ) {
        $fn = Closure::bind( Closure::fromCallable( $fn ), $this );

        if ( ! function_exists( 'add_action' ) ) {
            throw new Exception( 'WordPress not loaded' );