this is quite limiting custom unmarshallers, and is inconsistent with other serialization tools in Go