public function remove_listener( $event_name, $listener, $priority = self::PRIORITY ) {

		if ( ! is_callable( $listener, true ) ) {
			throw new InvalidListenerException( '$listener must be callable.' );
		}

		if ( ! is_int( $priority ) ) {
			throw new \InvalidArgumentException( '$priority must be an int.' );
		}

		remove_filter( $event_name, $listener, $priority );

		return $this;
	}