impliment edit and update feature