simplify the number of distinct worker types

there is no good reason that I need 4 different types of workers, the reducer and mapWorker functions can now be created in terms of an object worker now that we have events.