save changes before rewriting read methods
improved read methods