add edit and recover funcitons
merge