private IVehicle CreateVehicleWithFees <T>(int weightInKilogram) where T : IVehicle { IVehicle vehicle = VehicleFactory.Create <T>(GetNextId(), weightInKilogram); IEnumerable <IFee> fees = FeeFactory.Create(vehicle); foreach (IFee fee in fees) { vehicle.AddFee(fee); } return(vehicle); }