only public methods
factoring dispatcher
adding strong disptcher
factoring test case for dispatcher