Introduce abstract service