modified BaseService