add crud (create, read, update and delete) functionalities