protected AVehicle(string make, string model, decimal price)
        {
            CustomValidator.ValidateStringRange(make, Constants.MinMakeLength, Constants.MaxMakeLength, Constants.StringMustBeBetweenMinAndMax);
            CustomValidator.ValidateStringRange(model, Constants.MinModelLength, Constants.MaxModelLength, Constants.StringMustBeBetweenMinAndMax);
            CustomValidator.ValidateDecimalRange(price, Constants.MinPrice, Constants.MaxPrice, Constants.NumberMustBeBetweenMinAndMax);
            this.Make  = make;
            this.Model = model;
            this.Price = price;

            this.Type = (VehicleType)Enum.Parse(typeof(VehicleType), this.GetType().Name);

            //TODO: The Wheels Constant for Validation IS used! But does a redundant or out of place validation.
            CustomValidator.ValidateIntRange((int)this.Type, Constants.MinWheels, Constants.MaxWheels, Constants.NumberMustBeBetweenMinAndMax);
            this.Wheels = (int)this.Type;
        }