data marshaler can now operate on supertypes