update and delete are functional