 		
 		public function getGroup(name:String):RosterGroup
 		{
-			for each(var group:RosterGroup in _groups)
+			for each(var group:RosterGroup in groups)
 			{
 				if(group.label == name)
 					return group;
 			}
 			return null;
 		}
-		
-		public function get groups():ArrayCollection
-		{
-			return _groups;
-		}
 	}
-}+}

		public function getContainingGroups(item:RosterItemVO):Array
		{
			var result:Array = [];
			for each(var group:RosterGroup in _groups)
			{
				if(group.contains(item))
					result.push(group);

		
		private function setContactGroups(contact:RosterItemVO, groupNames:Array):void
		{
			groups.disableAutoUpdate();
			for each(var name:String in groupNames)
			{
				//if there's no group by this name already, we need to make one
				if(!getGroup(name))
					groups.addItem(new RosterGroup(name));
			}
			for each(var group:RosterGroup in groups)
			{
				if(groupNames.indexOf(group.label) >= 0)
					group.addItem(contact);
				else
					group.removeItem(contact);
			}
			groups.enableAutoUpdate();
		}
		
		private function updateRosterItemSubscription( item:RosterItemVO, type:String, name:String, newGroupNames:Array ):void
