public void Start()
        {
            _restServer.Start();

            // start streaming server
            _streamingServer.Start();

            _playbackService.FrameAvailable += _streamingServer.Send;
            _recordService.FrameAvailable   += _streamingServer.Send;

            foreach (var restRouter in _restRouters)
            {
                restRouter.OnGetSessionCalled    += HandleOnGetSessionCalled;
                restRouter.OnPlayCalled          += HandleOnPlayCalled;
                restRouter.OnPausePlaybackCalled += HandleOnPausePlaybackCalled;
                restRouter.OnStopPlaybackCalled  += HandleOnStopPlaybackCalled;
                restRouter.OnJumpPlaybackCalled  += HandleOnJumpPlaybackCalled;
                restRouter.OnRecordSessionCalled += HandleOnRecordSessionCalled;
                restRouter.OnStopRecordCalled    += HandleOnStopRecordCalled;
            }

            switch (_startMode)
            {
            case "record":
                StartRecord();
                break;

            case "playback":
                // nothing to to without session to play
                break;
            }
        }