add edit/cancel functions