fleshing out some serializer interface changes to support composition