 			saveDiff(true);
 		}
 		
+		/**
+		 * This will undo a number of steps from the saved history.
+		 * @param numberOfSteps The number of steps to undo.
+		 */
 		public function undo(numberOfSteps:int = 1):void
 		{
 			applyDiffs(-numberOfSteps);
 		}
 		
+		/**
+		 * This will redo a number of steps that have been previously undone.
+		 * @param numberOfSteps The number of steps to redo.
+		 */
 		public function redo(numberOfSteps:int = 1):void
 		{
 			applyDiffs(numberOfSteps);
 		}
 		
+		/**
+		 * @private
+		 * @param delta The number of steps to undo (negative) or redo (positive).
+		 */
 		private function applyDiffs(delta:int):void
 		{
 			var stepsRemaining:int = Math.min(Math.abs(delta), delta < 0 ? _undoHistory.length : _redoHistory.length);

			}
			trace('undo ['+h+']','redo ['+f+']');
		}
	}
}

internal class LogEntry
{
	public function LogEntry(id:int, forward:Object, backward:Object)
	{
		this.id = id;


package weave.core
{
	import flash.utils.ByteArray;
	
	import mx.utils.ObjectUtil;
	
	import weave.api.WeaveAPI;
