why not just return self._dispatch() here?