refactored out the factory service entirely