great producer -> producer/submitter refactor