 		
 		public function getBeadByType(classOrInterface:Class):IBead
 		{
-			for each (var bead:IBead in strand)
+			for each (var bead:IBead in _beads)
 			{
 				if (bead is classOrInterface)
 					return bead;

		// from AS, just call addBead()
		public var beads:Array;
		
		private var strand:Vector.<IBead>;
		public function addBead(bead:IBead):void
		{
			if (!strand)
				strand = new Vector.<IBead>;
			strand.push(bead);
			if (bead is IBeadModel)
				_model = bead as IBeadModel;
			bead.strand = this;

		
		public function removeBead(value:IBead):IBead	
		{
			var n:int = _beads.length;
			for (var i:int = 0; i < n; i++)
			{
				var bead:IBead = _beads[i];
				if (bead == value)
				{
					_beads.splice(i, 1);
					return bead;
				}
			}
