     @levelLoader.once 'loaded-all', @simulateGame
 
   simulateGame: =>
+    return if @destroyed
     @trigger 'statusUpdate', 'All resources loaded, simulating!', @task.getSessions()
     @assignWorldAndLevelFromLevelLoaderAndDestroyIt()
     @setupGod()

  destroy: ->
    @off()
    @cleanupSimulation()
    # TODO: More teardown?

  fetchAndSimulateTask: =>

SuperModel = require 'models/SuperModel'
CocoClass = require 'lib/CocoClass'
LevelLoader = require 'lib/LevelLoader'
GoalManager = require 'lib/world/GoalManager'
God = require 'lib/God'

module.exports = class Simulator extends CocoClass

  constructor: ->
    _.extend @, Backbone.Events
