support attributes names that don't match the type they map to in both serialization and deserialization