public static Vehicle CreateVehicle(eVehicleType i_VehicleType)
        {
            Vehicle           m_Vehicle             = null;
            FuelEngine        FuelPropulsion        = null;
            ElectricityEngine ElectricityPropulsion = null;

            switch (i_VehicleType)
            {
            case eVehicleType.FuelCar:      //Fuel Car
                FuelPropulsion          = new FuelEngine(45f);
                FuelPropulsion.FuelType = FuelEngine.eFuelType.Octan98;
                m_Vehicle = new Car(FuelPropulsion);
                m_Vehicle.SetAirPressureInWheels(32f);
                break;

            case eVehicleType.ElectricyCar:       //Electric Car
                ElectricityPropulsion = new ElectricityEngine(3.2f);
                m_Vehicle             = new Car(FuelPropulsion);
                m_Vehicle.SetAirPressureInWheels(32f);
                break;

            case eVehicleType.FuelBike:      //Fuel Bike
                FuelPropulsion          = new FuelEngine(6f);
                FuelPropulsion.FuelType = FuelEngine.eFuelType.Octan96;
                m_Vehicle = new Bike(FuelPropulsion);
                m_Vehicle.SetAirPressureInWheels(30f);
                break;

            case eVehicleType.ElectricyBike:      //Electric Bike
                ElectricityPropulsion = new ElectricityEngine(1.8f);
                m_Vehicle             = new Bike(ElectricityPropulsion);
                m_Vehicle.SetAirPressureInWheels(30f);
                break;

            case eVehicleType.Truck:       //Fuel Truck
                FuelPropulsion          = new FuelEngine(115f);
                FuelPropulsion.FuelType = FuelEngine.eFuelType.Soler;
                m_Vehicle = new Truck(FuelPropulsion);
                m_Vehicle.SetAirPressureInWheels(28f);
                break;

            default:
                throw new ArgumentException("Type of Vehicle not Set");
            }

            return(m_Vehicle);
        }