implement update and delete methods