 				this.push(element);
 			}
 		}
-		
+
+        public function pushMultipleUnsafe(array:Array):void
+        {
+            for each (var element:ManagedObject in array)
+            {
+                this.pushUnsafe(element);
+            }
+        }
+
 		public function pop():ManagedObject
 		{
 			var object:ManagedObject = null;

			return object;
		}

        public function shift():ManagedObject
        {
            var object:ManagedObject = null;

			
			return splicedObjects;
		}

        public function spliceUnsafe(startIndex:int, deleteCount:int):Vector.<ManagedObject>
        {
            var splicedObjects:Vector.<ManagedObject> = new Vector.<ManagedObject>();

            if (startIndex < _data.length && (startIndex + deleteCount) <= _data.length)
            {
                var object:ManagedObject;

                while (deleteCount > 0)
                {
                    object = _data[startIndex];
                    removeUnsafe(object);
                    splicedObjects.push(object);
                    deleteCount--;
                }
            }
            else
            {
                throw new RangeError("startIndex and deleteCount arguments specify an index to be deleted that's outside the ManagedArray's bounds.");
            }

            return splicedObjects;
        }

		public function replaceObject(oldObject:ManagedObject, newObject:ManagedObject):Boolean
		{
			var index:int = _data.indexOf(oldObject);
