Money basePrice = deserialize( Money.class, formatVersion, deserializeFrom );
//Now we visit all remaining children (should only be extras)
List<? extends Extra> extras = deserializeCollection( deserializeFrom, Extra.class, formatVersion );
return new Car( model, color, basePrice, extras );
}