public TickStateController Create(ITAlertPhotonClient photonClient)
		{
		    var simulationSummary = new SimulationSummary.SimulationSummary();

			// Loading
			var loadingState = new LoadingState(new LoadingStateInput());
			loadingState.AddTransitions(new OnCompletedTransition(loadingState, LoginState.StateName));

			// Login
			var loginState = new LoginState();
			loginState.AddTransitions(new OnCompletedTransition(loginState, MenuState.StateName));

			// Menu
			var menuState = new MenuState(photonClient);

			// Room
			var roomStateInput = new RoomStateInput(photonClient);
			var roomState = new RoomState(roomStateInput, photonClient, simulationSummary);


			// Test Simulation Summary
			var simulationSummaryStateInput = new SimulationSummaryStateInput(simulationSummary);
			var simulationSummaryState = new SimulationSummaryState(simulationSummaryStateInput, simulationSummary);

			// Add states to controller
			var stateController = new TickStateController(loadingState, loginState, menuState, roomState, simulationSummaryState);
		    stateController.SetParent(ParentStateController);


		    roomState.SetSubstateParentController(stateController);
		    menuState.SetSubstateParentController(stateController);

            return stateController;
		}
        private SimulationSummaryState CreateSimulationSummaryState(SimulationSummary.SimulationSummary simulationSummary)
        {
            var input = new SimulationSummaryStateInput(simulationSummary);
            var state = new SimulationSummaryState(input, simulationSummary);

            var launchQuestionnaire = _photonClient.CurrentRoom.RoomInfo.customProperties[CustomRoomSettingKeys.GameScenario].ToString() == "SPL3";

            var onEndAndLaunchQuestionniareTransition = new OnEventTransition(
                LaunchQuestionnaireState.StateName,
                () => launchQuestionnaire);


            var onEndAndReturnToMenuTransition = new OnEventTransition(
                MenuState.StateName,
                () => !launchQuestionnaire);

            input.ContinueClickedEvent += onEndAndReturnToMenuTransition.ChangeState;
            input.ContinueClickedEvent += onEndAndLaunchQuestionniareTransition.ChangeState;
            input.ContinueClickedEvent += _photonClient.CurrentRoom.Leave;

            state.AddTransitions(
                onEndAndReturnToMenuTransition,
                onEndAndLaunchQuestionniareTransition
                );

            return(state);
        }