using shelve: but with a KeyError