contains CRUD operations in data layer