elaborated on CRUD operations