abstract CRUD classes implemented for each layer: domain, data, business and web