code: function(group, containers)
  	{
  	    var sGroup = {};
  	    sGroup.properties = {};
  	    lang.augmentObject(sGroup.properties, group.properties);
  	    
  	    if (lang.isValue(group.groupContainer))
  	    {
  		sGroup.groupContainer = containers.indexOf(group.groupContainer);
  	    }
  	    else
  	    {
  		sGroup.containers = []
  		sGroup.groups = []
  		for (var cI in group.containers)
  		    sGroup.containers.push({"container" : containers.indexOf(group.containers[cI].container), "overrides" : group.containers[cI].overrides}) //TODO: check if index is -1?
  
  		for (var gI in group.groups)
  		{
  		    var g = group.groups[gI];
  		    
  		    sGroup.groups.push({"group" : WireIt.GroupUtils.serialiseGroup(g.group, containers), "overrides" : g.overrides});
  		}
  	    }
  	    
  	    return sGroup;
  	}
docs: Removes direct references to group and container objects (replaces with an index), is applied recursively to sub groups
  @param {WiteIt.Group} group The group to serialise
  @param {Array} containers The array of containers from the group (for generating indexes)
  @return {Object} The seriliased group