added service factory creation