added CRUD functionality