private char ProcessConversionFlow(char input) { int position = _plugBoard.Process(input); position = _entryWheel.Process(position); position = _fastRotor.Process(position, true); position = _middleRotor.Process(position, _fastRotor.IsTurnedOver); position = _slowRotor.Process(position, _middleRotor.IsTurnedOver); position = _reflector.Reflect(position); position = _slowRotor.ProcessReflection(position); position = _middleRotor.ProcessReflection(position); position = _fastRotor.ProcessReflection(position); position = _entryWheel.ProcessReflection(position); var outputValue = _plugBoard.ProcessReflection(position); return(outputValue); }