-<cffunction name="addError" returntype="void" access="public" output="false" hint="Adds an error on the specific property.">
-	<cfargument name="property" type="string" required="true" hint="Name of property">
-	<cfargument name="message" type="string" required="true" hint="Message relating to the error">
-	<cfargument name="name" type="string" required="false" default="" hint="Name to identify the error by">
+<cffunction name="addError" returntype="void" access="public" output="false"
+	hint="Adds an error on a specific property."
+	examples=
+	'
+		<!--- Add an error to the `email` property --->
+		<cfset addError(property="email", message="Sorry, you are not allowed to use that email, try again please.")>
+	'
+	categories="model-object" chapters="object-validation" functions="addErrorToBase,allErrors,clearErrors,errorCount,errorsOn,errorsOnBase,hasErrors">
+	<cfargument name="property" type="string" required="true" hint="The name of the property you want to add an error for.">
+	<cfargument name="message" type="string" required="true" hint="The error message (such as ""Please enter a correct name in the form field"" for example).">
+	<cfargument name="name" type="string" required="false" default="" hint="A name to identify the error by (useful when you need to distinguish one error from another one set on the same object and you don't want to use the error message itself for that).">
 	<cfscript>
 		ArrayAppend(variables.wheels.errors, arguments);
 	</cfscript>
 </cffunction>
 
-<cffunction name="addErrorToBase" returntype="void" access="public" output="false" hint="Adds an error on the object as a whole (not related to any specific property).">
-	<cfargument name="message" type="string" required="true" hint="Message relating to the error">
-	<cfargument name="name" type="string" required="false" default="" hint="Name to identify the error by">
+<cffunction name="addErrorToBase" returntype="void" access="public" output="false"
+	hint="Adds an error on the object as a whole (not related to any specific property)."
+	examples=
+	'
+		<!--- Add an error on the object --->
+		<cfset addError(message="Your email address has to be the same as your domain name.")>
+	'
+	categories="model-object" chapters="object-validation" functions="addError,allErrors,clearErrors,errorCount,errorsOn,errorsOnBase,hasErrors">
+	<cfargument name="message" type="string" required="true" hint="See documentation for @addError.">
+	<cfargument name="name" type="string" required="false" default="" hint="See documentation for @addError.">
 	<cfscript>
 		arguments.property = "";
 		addError(argumentCollection=arguments);
 	</cfscript>
 </cffunction>
 
-<cffunction name="hasErrors" returntype="boolean" access="public" output="false" hint="Returns 'true' if the object, property or name has any errors.">
-	<cfargument name="property" type="string" required="false" default="" hint="Name of property">
-	<cfargument name="name" type="string" required="false" default="" hint="Given name for the error">
+<cffunction name="allErrors" returntype="array" access="public" output="false"
+	hint="Returns an array of all the errors on the object."
+	examples=
+	'
+		<!--- Get all the errors for the `user` object --->
+		<cfset errorInfo = user.allErrors()>
+	'
+	categories="model-object" chapters="object-validation" functions="addError,addErrorToBase,clearErrors,errorCount,errorsOn,errorsOnBase,hasErrors">
 	<cfscript>
 		var loc = {};
-		if (errorCount(argumentCollection=arguments) > 0)
-			loc.returnValue = true;
-		else
-			loc.returnValue = false;
+		loc.returnValue = variables.wheels.errors;
 	</cfscript>
 	<cfreturn loc.returnValue>
 </cffunction>
 
-<cffunction name="clearErrors" returntype="void" access="public" output="false" hint="Clear out all errors for the object, property or name">
-	<cfargument name="property" type="string" required="false" default="" hint="Name of property">
-	<cfargument name="name" type="string" required="false" default="" hint="Given name for the error">
+<cffunction name="clearErrors" returntype="void" access="public" output="false"
+	hint="Clears out all errors set on the object or only the ones set for a specific property or name."
+	examples=
+	'
+		<!--- Clear all errors on `firstName` --->
+		<cfset clearErrors("firstName")>
+	'
+	categories="model-object" chapters="object-validation" functions="addError,addErrorToBase,allErrors,errorCount,errorsOn,errorsOnBase,hasErrors">
+	<cfargument name="property" type="string" required="false" default="" hint="Specify a property name here if you want to clear all errors set on that property.">
+	<cfargument name="name" type="string" required="false" default="" hint="Specify an error name here if you want to clear all errors set with that error name.">
 	<cfscript>
 		var loc = {};
-		if(!len(arguments.property) && !len(arguments.name))
+		if (!Len(arguments.property) && !Len(arguments.name))
 			ArrayClear(variables.wheels.errors);
 		else
 		{

	<cfreturn loc.returnValue>
</cffunction>

<cffunction name="errorsOnBase" returntype="array" access="public" output="false" hint="Returns an array of all errors associated with the object as a whole (not related to any specific property).">
	<cfargument name="name" type="string" required="false" default="" hint="Given name for the error">
	<cfscript>
		var loc = {};
		arguments.property = "";

	<cfreturn loc.returnValue>
</cffunction>

<cffunction name="errorsOn" returntype="array" access="public" output="false"
	hint="Returns an array of all errors associated with the supplied property (and error name when passed in)."
	examples=
	'
		<!--- Get all errors related to the email address of the user object --->
		<cfset errors = user.errorsOn("emailAddress")>
	'
	categories="model-object" chapters="object-validation" functions="addError,addErrorToBase,allErrors,clearErrors,errorCount,errorsOnBase,hasErrors">
	<cfargument name="property" type="string" required="true" hint="Specify the property name to return errors for here.">
	<cfargument name="name" type="string" required="false" default="" hint="If you want to return only errors on the above property set with a specific error name you can specify it here.">
	<cfscript>
		var loc = {};
		loc.returnValue = [];
