private void parse_and_map_vehicle_types(JsonNode root) {
JsonNode types = root.path(JsonConstants.VEHICLE_TYPES);
for(JsonNode typeNode : types){
JsonNode typeIdNode = typeNode.path(JsonConstants.Vehicle.Type.ID);
if(typeIdNode.isMissingNode()) throw new IllegalStateException("type id missing");
VehicleTypeImpl.Builder typeBuilder = VehicleTypeImpl.Builder.newInstance(typeIdNode.asText());
typeBuilder.setFixedCost(typeNode.path(JsonConstants.Vehicle.Type.FIXED_COSTS).asDouble());
typeBuilder.setCostPerDistance(typeNode.path(JsonConstants.Vehicle.Type.DISTANCE).asDouble());
typeBuilder.setCostPerTime(typeNode.path(JsonConstants.Vehicle.Type.TIME).asDouble());
JsonNode capacity = typeNode.path(JsonConstants.Vehicle.Type.CAPACITY);
Iterator<JsonNode> capacity_dimension_iterator = capacity.iterator();