all CRUD functionality complete