abstracting user and fixing service provider