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)