made team-services generic so could be reused