add GenericService and AbstractService