https://bytebypython.de/diving-into-pythons-shelve-module/