saving and loading data almost complete