Move all factory logic into service factory class