implemented singleton service factory