use shelve as storage!