Created a stateless functional version of AbstractDispatcher so that we don't need to worry about synchronization when service is called twice on the same dispatcher.