         return
 
     start: ->
+        ###
+            Internal Function (used only by the code in this file)
+
+            Starts the game
+        ###
         @startedExecuting = true
         @startedGame = true
         return
 
     drawPixel: (x, y, color) ->
+        ###
+            External Function (used by something outside of this file)
+
+            Places a draw pixel command on the commands queue.
+
+            @param x
+                The x position of the pixel
+            @param y
+                The y position of the pixel
+            @param color
+                The color of the pixel
+        ###
         if not @gameManager.config.game.characterBase.hasOwnProperty color
             return
         char = @gameManager.generateCharacter color,

        @picture[x][y] = char
        @commands.push {
            key: 'drawPixel',
            exec: @_drawPixel.bind @, x, y, color, char
        }
        return

    _drawPixel: (x, y, color, char) ->
        if @picture[x][y]?
            @visual.removeCharacter @gameManager.config.visual, @picture[x][y].visual
        @visual.pushCharacter @gameManager.config.visual, char.visual

        return correct

    checkEvents: ->
        ###
            Internal Function (used only by the code in this file)

            Checks if the gamestate necessitates triggering any event.
            For paint games it is only necessary if the game finished to
            check if it was done correctly.
        ###
        if @finishedExecuting
            if @checkPainting()
                @gameWon()
