refactor creation out of work item into a factory class