code: function addChild(child, z) {
           if (child.ancestor instanceof me.Container) {
             child.ancestor.removeChildNow(child);
           } else {
             // only allocate a GUID if the object has no previous ancestor
             // (e.g. move one child from one container to another)
             if (child.isRenderable) {
               // allocated a GUID value (use child.id as based index if defined)
               child.GUID = me.utils.createGUID(child.id);
             }
           }
  
           child.ancestor = this;
           this.children.push(child); // set the child z value if required
  
           if (typeof child.pos !== "undefined") {
             if (typeof z === "number") {
               child.pos.z = z;
             } else if (this.autoDepth === true) {
               child.pos.z = this.children.length;
             }
           }
  
           if (this.autoSort === true) {
             this.sort();
           }
  
           if (typeof child.onActivateEvent === "function" && this.isAttachedToRoot()) {
             child.onActivateEvent();
           }
  
           this.onChildChange.call(this, this.children.length - 1);
           return child;
         }
docs: Add a child to the container <br>
  if auto-sort is disable, the object will be appended at the bottom of the list.
  Adding a child to the container will automatically remove it from its other container.
  Meaning a child can only have one parent.  This is important if you add a renderable
  to a container then add it to the me.game.world container it will move it out of the
  orginal container.  Then when the me.game.world.reset() is called the renderable
  will not be in any container.
  @name addChild
  @memberOf me.Container.prototype
  @function
  @param {me.Renderable} child
  @param {number} [z] forces the z index of the child to the specified value
  @return {me.Renderable} the added child