 	</cfscript>
 </cffunction>
 
-<cffunction name="$validate" returntype="boolean" access="public" output="false">
+<cffunction name="$validationErrorMessage" returntype="string" access="public" output="false" hint="Creates nicer looking error text by humanizing the property name and capitalizing it when appropriate.">
+	<cfargument name="message" type="string" required="true">
+	<cfargument name="property" type="string" required="true">
+	<cfscript>
+		var returnValue = "";
+		returnValue = Replace(arguments.message, "[property]", LCase(humanize(arguments.property)), "all"); // turn variable names into words
+		if (Left(arguments.message, 10) == "[property]")
+			returnValue = capitalize(returnValue); // capitalize the first variable name word if it comes first in the sentence
+	</cfscript>
+	<cfreturn returnValue>
+</cffunction>
+
+<!--- PRIVATE MODEL OBJECT METHODS --->
+
+<cffunction name="$validate" returntype="boolean" access="public" output="false" hint="Runs all the validation methods setup on the object and adds errors as it finds them. Returns `true` if no errors were added, `false` otherwise.">
 	<cfargument name="type" type="string" required="true">
 	<cfscript>
 		var loc = {};

  			<cfset validatesInclusionOf(property="frameworkOfChoice", list="wheels,rails", message="Please try again and this time select a decent framework.")>
		</cffunction>
	'
	categories="model-initialization" chapters="object-validation" functions="validatesConfirmationOf,validatesExclusionOf,validatesFormatOf,validatesLengthOf,validatesNumericalityOf,validatesPresenceOf,validatesUniquenessOf">
	<cfargument name="properties" type="string" required="false" default="" hint="See documentation for @validatesConfirmationOf.">
	<cfargument name="list" type="string" required="true" hint="List of allowed values.">
	<cfargument name="message" type="string" required="false" default="#application.wheels.functions.validatesInclusionOf.message#" hint="See documentation for @validatesConfirmationOf.">

	<cfset $registerValidation(methods="$validatePresenceOf", argumentCollection=arguments)>
</cffunction>

<cffunction name="validatesUniquenessOf" returntype="void" access="public" output="false" hint="Validates that the value of the specified property is unique in the database table. Useful for ensuring that two users can't sign up to a website with identical screen names for example. When a new record is created a check is made to make sure that no record already exists in the database with the given value for the specified property. When the record is updated the same check is made but disregarding the record itself."
	examples=
	'
		<!--- In models/User.cfc --->
