add semi abstract worker factory
use of provided function arguments with nullables to keep interface compliance happy
Merge branch 'feature/remove-type-specific-worker-factory' into feature/worker-listener

* feature/remove-type-specific-worker-factory:
  use of provided function arguments with nullables to keep interface compliance happy
  add semi abstract worker factory