public void Accelerate(GearShiftBoundaries gearShiftBoundaries) { var currentRpm = _externalSystems.GetCurrentRpm(); if (currentRpm < gearShiftBoundaries.DownshiftBoundary) { _gearShifter.Downshift(); } else if (currentRpm > gearShiftBoundaries.UpshiftBoundary * _rpmUpshiftFactor) { _gearShifter.Upshift(); _externalSystems.MakeSound(new SoundVolume(40)); } }