Extract out UnitOfWorkRunner
Merge branch 'extractUnitOfWorkRunner' into develop