introduce destroy and regenerate functions in ServiceManager