protected Vehicle(ICarColour carColour, IWheel wheel, Brand brand, Numberplate numberplate, EngineClass engine)
        {
            this.brand       = brand;
            this.carColour   = carColour;
            this.numberplate = numberplate;
            this.wheel       = wheel;
            this.engine      = engine;

            id    = ++counter;
            price = wheel.Price() + carColour.CalculatePrice() + brand.GetPrice() + engine.GetPrice();
        }