       tipselector: 'tr[data-gamenumber="0"] td:first-child'
       tipheading: 'Join this game'
       tipmessage: 'Click here to join the game!'
-
-    @addStep 
-      id: "goal"
-      modal: true
-      header: "Goal setting"
-      content: "Great, we're in a game! You've been chosen to be the goal setter. Let's make the goal '1+2'."
-
-    @doStepWhenScreen GoalScreen, "goal"
+      callback: =>
+        @addStep 
+          id: "goal"
+          modal: true
+          header: "Goal setting"
+          content: "Great, we're in a game! You've been chosen to be the goal setter. Let's make the goal '1+2'."
+        @doStepWhenScreen GoalScreen, "goal"
 
     @addStep
       modal: false

    nextIndex = if stepId? then @stepIds[stepId] else @nextStepIndex
    theStep = @steps[nextIndex]
    if theStep?
      {id, header, content, tipselector, tipmessage, tipheading, tipnext, modal} = theStep
      if header? then @changeHeader(header)
      if content? then @changeContent(content)
      if tipselector? then @displayTip(tipselector, tipmessage, tipheading, tipnext)

      if modal? or (tipselector? and tipnext)
        $('.tutorial-next-button').unbind "click"
        $('.tutorial-next-button').click (=> @doStep())
      if callback? then callback()
      @nextStepIndex++ until @steps[@nextStepIndex]? or @nextStepIndex is @steps.length

  ###*
   * Executes a step with given step id only when the current screen
   * is an instance of the given class name. This is done using a timer
