Add GenericService and Fix Bugs