Major changes to enable saving changes from the client