code: function(selector) {
              var retArr = [],
                  selectorArr = selector.replace(/ /g, '').split(','),
                  len = selectorArr.length,
                  n, i, sel, arr, node, children, clen;
  
              for (n = 0; n < len; n++) {
                  sel = selectorArr[n];
  
                  // id selector
                  if(sel.charAt(0) === '#') {
                      node = this._getNodeById(sel.slice(1));
                      if(node) {
                          retArr.push(node);
                      }
                  }
                  // name selector
                  else if(sel.charAt(0) === '.') {
                      arr = this._getNodesByName(sel.slice(1));
                      retArr = retArr.concat(arr);
                  }
                  // unrecognized selector, pass to children
                  else {
                      children = this.getChildren();
                      clen = children.length;
                      for(i = 0; i < clen; i++) {
                          retArr = retArr.concat(children[i]._get(sel));
                      }
                  }
              }
  
              return Kinetic.Collection.toCollection(retArr);
          }
docs: return a {@link Kinetic.Collection} of nodes that match the selector.  Use '#' for id selections
  and '.' for name selections.  You can also select by type or class name. Pass multiple selectors
  separated by a space.
  @method
  @memberof Kinetic.Container.prototype
  @param {String} selector
  @returns {Collection}
  @example
  // select node with id foo<br>
  var node = stage.find('#foo');<br><br>
  
  // select nodes with name bar inside layer<br>
  var nodes = layer.find('.bar');<br><br>
  
  // select all groups inside layer<br>
  var nodes = layer.find('Group');<br><br>
  
  // select all rectangles inside layer<br>
  var nodes = layer.find('Rect');<br><br>
  
  // select node with an id of foo or a name of bar inside layer<br>
  var nodes = layer.find('#foo, .bar');