Extract AbstractService class