         }
 
         /**
-         * Returns a new Array created from items of current Stream
+         * Creates a new Array from items of current Stream
          */
         public function array():Array
         {

            return undefined;
        }

        public function drop(count:uint):Stream
        {
            return this.slice(0, length - count);
        }

        public function getItem(index:int):*
        {
            return source[index];
        }


        public function setItem(index:int, value:*):void
        {
            source[index] = value;
        }

        public function count(callback:Function):uint
        {
            var result:uint = 0;


        /**
         * Flattens a nested Streams, ArrayLists, ArrayCollections, Vectors.
         * @return A new stream from items of the nested Streams, ArrayLists, ArrayCollections, Vectors.
         */
        public function flatten():Stream
        {
            return flatMap(null);
        }

        /**
         * Builds a new stream by applying a function to all items of this stream and using
         * the items of the resulting Streams, ArrayLists, ArrayCollections, Vectors.
         * @param callback The function to execute on each value in the stream: <code>function(item:*):*</code>.
         * @return
         */
        public function flatMap(callback:Function):Stream
