contract add & edit