finished the implementation of create, read, update and delete