add edit func