add edit function