all elements have unique client-side IDs now. save function partially implemented.