 			return _format.hasComponent(vertexComponent) ? this : null;
 		}
 
-		public function get(i : int) : Number
+		public function get(i : uint) : Number
 		{
 			checkReadUsage(this);
 			

			_changed.add(changedHandler);
			changedHandler(this, null);
			
			updateMinMax();			
		}
		
		private function updateMinMax() : void
		{
			if (!_invalidMinMax)
				return ;
				
			_invalidMinMax = false;
			
			var size		: uint	= format.dwordsPerVertex;
			var dataLength	: uint	= data.length;
			var i			: uint	= 0;
			
			_minimum = new Vector.<Number>(size, true);
			_maximum = new Vector.<Number>(size, true);
			
			for (i = 0; i < size; ++i)
			{
				_minimum[i] = Number.MAX_VALUE;
				_maximum[i] = Number.MIN_VALUE;
			}
			
			i = 0;
			while (i < dataLength)
			{
				for (var j : uint = 0; j < size; ++j)
				{
					var value : Number = _data[uint(i + j)];
					
					if (value < _minimum[j])
						_minimum[j] = value;
					else if (value > _maximum[j])
						_maximum[j] = value;
				}
				
				i += size;
			}
			
			_boundsChanged.execute(this);
		}
		
		public function deleteVertexByIndex(index : uint) : Boolean

		{
			return _maximum[index];
		}
		
		/**
		 * Lock the stream in order to perform bulk updates without triggering
		 * any signal to get better performances.
		 *  
		 * @return 
		 * 
		 */
		public function lock() : Vector.<Number>
		{
			if (_locked) 
