ServiceFactory Refactor