 	import weave.api.core.DynamicState;
 	import weave.api.core.ILinkableObject;
 	import weave.api.getCallbackCollection;
+	import weave.api.getSessionState;
 	import weave.compiler.Compiler;
 	import weave.compiler.StandardLib;
 	

								if (obj[DynamicState.OBJECT_NAME] == property)
								{
									state = obj[DynamicState.SESSION_STATE];
									break;
								}
							}
						}
					}
					else

			};
			watchLookup[linkableTarget] = callback;
			getCallbackCollection(linkableTarget).addImmediateCallback(null, callback);
		}
		
		public static function watchState(target:Object = null, indent:* = null):void
		{
			if (!target)
			{
				weaveTrace('Usage: watchState(target, optional_indent)');
				return;
			}
			watch(target, function(object:ILinkableObject):String { return Compiler.stringify(getSessionState(object), null, indent); });
		}
		
		public static function unwatch(target:Object):void
