add factory for service