getting the class hierarchy right was a pain
conceptually: what exactly should be the scope of the functionality for virtual maps?
technically: how to distribute the functionality into different classes?
technically: how to find a proper class structure to organize 'Serializable', 'Materializable', ...
rewrote this part completely 12 times
==> solution: traits (aka mix-ins)