public void Start() { var builder = new EngineBuilder() .AddReporter(new RpmReporter(_eventBus, _adapter)) .AddReporter(new SlippingReporter(_eventBus, _adapter)) .AddReporter(new GearReporter(_eventBus, new GearboxAdapter(_gearbox))); if (_adapter.SupportsTiltPosition()) { builder.AddReporter(new TiltChangeReporter(_eventBus, _adapter)); } _eventBus.Attach(new TransmissionEventListener(new LeverAdapter(_gearbox))); builder.Build().Start(); }