implemented the rest of the CRUD operations