private async Task InitializeFields(IEnumerable <SkillNode> skillNodes) { _gameData.PassiveNodes = skillNodes; var computationFactory = new ComputationFactory(GameData); var calculator = computationFactory.CreateCalculator(); _builderFactories = await computationFactory.CreateBuilderFactoriesAsync(); _parser = await computationFactory.CreateParserAsync(); _schedulers = new ComputationSchedulerProvider(); _observables = new ComputationObservables(_parser); _calculator = new ObservableCalculator(calculator, _schedulers.CalculationThread); }