this class should be public
additional note on how to implement own dispatching strategies