private void Init() { _pageManager = new PageManager(_startPage, _gamePage, _settingsPage); _dataManager = new DataManager(); _sessionDataManager = new SessionDataManager(); _pageManager.SetPageState(PageState.StartPage); _soundManager.Init(_dataManager); _startPage.Init(() => _pageManager.SetPageState(PageState.GamePage), () => _pageManager.SetPageState(PageState.SettingsPage)); _gamePage.Init(_gridManager.UserGrid, _gridManager.ComputerGrid, _gridManager.GridSize, () => _pageManager.SetPageState(PageState.StartPage), _shipsManager, _messageItemsController.StepMessageItems, _sessionDataManager, _pageManager.SetPageState, _gridManager.ResetGrid); _settingsPage.Init(() => _pageManager.SetPageState(PageState.StartPage), _dataManager); _gridManager.Init(_attackManager.ElementPressedForAttack); _shipsManager.Init(_gridManager, _soundManager, _gamePage.TryToActivateConfirmButton); _attackManager.Init(_soundManager, _messageItemsController, _shipsManager, _sessionDataManager, _gridManager, _gamePage); }