         }
     }
 
-    // from EZGame
+    /**
+     * Data accessor.
+     */
     public function get data () :Object
     {
         return _gameData;
     }
 
-    // from EZGame
+    /**
+     * Get a property from data.
+     */
     public function get (propName :String, index :int = -1) :Object
     {
         var value :Object = data[propName];

        return value;
    }

    // from EZGame
    public function set (propName :String, value :Object, index :int = -1) :void
    {
        callEZCode("setProperty_v1", propName, value, index);
    }

    // from EZGame
    public function registerListener (obj :Object) :void
    {
        if (obj is MessageReceivedListener) {

            new PropertyChangedEvent(this, name, newValue, oldValue, index));
    }

    /**
     * Private method to post a StateChangedEvent.
     */
    private function turnDidChange_v1 () :void
    {
        dispatch(new StateChangedEvent(StateChangedEvent.TURN_CHANGED, this));
    }

    /**
     * Private method to post a MessageReceivedEvent.
     */
    private function messageReceived_v1 (name :String, value :Object) :void
    {
        dispatch(new MessageReceivedEvent(this, name, value));
    }

    /**
     * Private method to post a StateChangedEvent.
     */
    private function gameDidStart_v1 () :void
    {
        dispatch(new StateChangedEvent(StateChangedEvent.GAME_STARTED, this));
    }

    /**
     * Private method to post a StateChangedEvent.
     */
    private function gameDidEnd_v1 () :void
    {
        dispatch(new StateChangedEvent(StateChangedEvent.GAME_ENDED, this));
