 			}
 			catch (e:*)
 			{
-				reportError(e);
+				externalError(e);
 			}
 			return undefined;
 		}

		 */
		public function addCallback(scopeObjectPathOrVariableName:Object, callback:String, triggerCallbackNow:Boolean = false, immediateMode:Boolean = false):Boolean
		{
			var object:ILinkableObject = getObjectFromPathOrVariableName(scopeObjectPathOrVariableName) as ILinkableObject;
			if (object == null)
				return false;
			_d2d_callbackStr_target.set(callback, object, true);
			if (immediateMode)
				getCallbackCollection(object).addImmediateCallback(null, getCachedCallbackFunction(callback), triggerCallbackNow);
			else
				getCallbackCollection(object).addGroupedCallback(null, getCachedCallbackFunction(callback), triggerCallbackNow);
			return true;
		}
		
		/**

					throw new Error("Invalid variable name: " + Compiler.encodeString(assignVariableName));
				
				var thisObject:Object = getObjectFromPathOrVariableName(scopeObjectPathOrVariableName);
				if (getObjectFromPathOrVariableName_error)
					throw new Error(getObjectFromPathOrVariableName_error);
				var compiledObject:ICompiledObject = _compiler.compileToObject(expression);
				var isFuncDef:Boolean = _compiler.compiledObjectIsFunctionDefinition(compiledObject);
				// passed-in variables take precedence over stored ActionScript _variables
				var compiledMethod:Function = _compiler.compileObjectToFunction(
					compiledObject,
					[variables, _variables],
					WeaveAPI.ErrorManager.reportError,
					thisObject != null
				);
				var result:*;
				if (isAssignment && isFuncDef)
				{
