make dispatcher public so other libs can extend