Use type wrappers instead of type tags

This alows easy type retagging.
Simplistic model inheritance f-me/carma#1375