added shelve methods for saving and loading data