 
 					// perform validation, create result object
 					var result:ValidationResult;
+					e.source = object;
 					if (! validator(e))
 					{
 						// INVALID! stop ALL other validators NOW!

				var p:String = e.property.toString();
				return Boolean(object[p] == object[p.replace('_confirmation', '')]);
			});
		}

		/**

		static public function presence_of (object:Object, ...attr_names) :void
		{
			var options:Hash = new Hash({ message: "{attr} can't be blank" }).update(extract_options(attr_names));
			add_validator(object, attr_names, options, function (e:PropertyChangeEvent) :Boolean {
				return Boolean(e.newValue);
			});
		}
