Prevent circular dependency with disaptcher

Adding listeners to the dispatcher as it is instantiated creates a circular dependency whenever a listener (or one of its dependencies) also depends on the dispatcher. The issue is fixed by waiting until the container is fully populated to add listeners to the dispatcher.