issue #2 - fix test
issue #2 - change data structure
issue #2 - mark new property "key" as ignorable by JSON serializer
issue #2 - save database state while application is shutting down
issue #2 - add context-based transaction manager
issue #2 - create context if not exists
issue #2 - implement transaction management