heatGenerator: Heater, private val cooler: Cooler ) { fun createReaction(): NuclearReactionStatus { return try { val chainReaction = fissionCreator.startChainReaction() val warmReaction = heatGenerator.addSomeHeat(chainReaction) if (warmReaction.producedEnergy > 0) { NuclearReactionStatus.ENERGY } else { NuclearReactionStatus.NOTHING } } catch (boom: Exception) { NuclearReactionStatus.BOOM } } }