interface, edit function