 		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:Object) :Boolean {
+			add_validator(object, attr_names, options, function (e:PropertyChangeEvent) :Boolean {
 				return Boolean(e.newValue);
 			});
 		}


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

		static private function extract_options (args:Array) :Object
		{
			return (
				(typeof args[(args.length - 1)]).match(/function|object/) ? args.pop() : {}
/*				(! (args[(args.length - 1)] is String)) ? args.pop() : {}*/
			);
		}
	}
