add persistence using shelve