add edit logic