 <!--- Class Methods --->
 
-<cffunction name="findByKey" returntype="any" access="public" output="false" hint="Class, fetches the requested record from the database and returns it as an object">
-	<cfargument name="key" type="any" required="true" hint="Primary key value(s) of record to look for">
-	<cfargument name="select" type="string" required="false" default="" hint="Properties to select">
-	<cfargument name="cache" type="any" required="false" default="">
-	<cfargument name="reload" type="boolean" required="false" default="#application.settings.get.reload#">
-	<cfargument name="parameterize" type="any" required="false" default="#application.settings.get.parameterize#">
+<cffunction name="findByKey" returntype="any" access="public" output="false" hint="Fetches the requested record and returns it as an object. Throws an error if no record is found.">
+	<cfargument name="key" type="any" required="true" hint="Primary key value(s) of record to fetch. Separate with comma if passing in multiple primary key values.">
+	<cfargument name="select" type="string" required="false" default="" hint="See documentation for `findAll`">
+	<cfargument name="cache" type="any" required="false" default="" hint="See documentation for `findAll`">
+	<cfargument name="reload" type="boolean" required="false" default="#application.settings.get.reload#" hint="See documentation for `findAll`">
+	<cfargument name="parameterize" type="any" required="false" default="#application.settings.get.parameterize#" hint="See documentation for `findAll`">
 	<cfargument name="$create" type="boolean" required="false" default="true">
 	<cfargument name="$softDeleteCheck" type="boolean" required="false" default="true">
-	<!---
-		DETAILS:
-		Returns false if no record is found.
-	--->
-	<cfscript>
-		var loc = {};
+	<cfscript>
+		var returnValue = "";
 		arguments.where = $keyWhereString(values=arguments.key);
 		StructDelete(arguments, "key");
-		loc.returnValue = findOne(argumentCollection=arguments);
-	</cfscript>
-	<cfreturn loc.returnValue>
-</cffunction>
-
-<cffunction name="findOne" returntype="any" access="public" output="false" hint="Class, fetches the first record that was found based on where and order argument and returns it as an object">
-	<cfargument name="where" type="string" required="false" default="" hint="String to use in where clause of query">
-	<cfargument name="order" type="string" required="false" default="" hint="String to use in order by clause of query">
-	<cfargument name="select" type="string" required="false" default="" hint="Properties to select">
-	<cfargument name="cache" type="any" required="false" default="">
-	<cfargument name="reload" type="boolean" required="false" default="#application.settings.findOne.reload#">
-	<cfargument name="parameterize" type="any" required="false" default="#application.settings.findOne.parameterize#">
+		returnValue = findOne(argumentCollection=arguments);
+	</cfscript>
+	<cfreturn returnValue>
+</cffunction>
+
+<cffunction name="findOne" returntype="any" access="public" output="false" hint="Fetches the first record found based on the `WHERE` and `ORDER BY` clauses and returns it as an object. Throws an error if no record is found.">
+	<cfargument name="where" type="string" required="false" default="" hint="See documentation for `findAll`">
+	<cfargument name="order" type="string" required="false" default="" hint="See documentation for `findAll`">
+	<cfargument name="select" type="string" required="false" default="" hint="See documentation for `findAll`">
+	<cfargument name="cache" type="any" required="false" default="" hint="See documentation for `findAll`">
+	<cfargument name="reload" type="boolean" required="false" default="#application.settings.findOne.reload#" hint="See documentation for `findAll`">
+	<cfargument name="parameterize" type="any" required="false" default="#application.settings.findOne.parameterize#" hint="See documentation for `findAll`">
 	<cfargument name="$create" type="boolean" required="false" default="true">
 	<cfargument name="$softDeleteCheck" type="boolean" required="false" default="true">
-	<!---
-		DETAILS:
-		Returns false if no record is found.
-	--->
 	<cfscript>
 		var loc = {};
 		loc.create = arguments.$create;

	<cfreturn loc.returnValue>
</cffunction>

<cffunction name="findAll" returntype="any" access="public" output="false" hint="Class, returns the records matching the arguments as a query result set">
	<cfargument name="where" type="string" required="false" default="" hint="String to use in where clause of query">
	<cfargument name="order" type="string" required="false" default="" hint="String to use in order by clause of query">
	<cfargument name="select" type="string" required="false" default="" hint="Properties to select">
	<cfargument name="include" type="string" required="false" default="" hint="Other classes that should be included">
	<cfargument name="maxRows" type="numeric" required="false" default="-1" hint="Maximum number of records to retrieve">
	<cfargument name="page" type="numeric" required="false" default=0>
	<cfargument name="perPage" type="numeric" required="false" default=10>
	<cfargument name="count" type="numeric" required="false" default="0">
	<cfargument name="handle" type="string" required="false" default="query">
	<cfargument name="cache" type="any" required="false" default="">
	<cfargument name="reload" type="boolean" required="false" default="#application.settings.findAll.reload#">
	<cfargument name="parameterize" type="any" required="false" default="#application.settings.findAll.parameterize#">
	<cfargument name="$limit" type="numeric" required="false" default=0>
	<cfargument name="$offset" type="numeric" required="false" default=0>
	<cfargument name="$softDeleteCheck" type="boolean" required="false" default="true">
	<!---
		DETAILS:
		If you don't specify table names in the select, where and order clause Wheels will guess what column you intended to get back and prepend the table name to your supplied column names. If you don't specify the select argument it will default to get all columns.
		EXAMPLES:
		<cfset articles = model("article ").findAll(where="published=1", order="createdAt DESC", include="author")>
	--->
	<cfscript>
		var loc = {};


	<cfreturn loc.returnValue>
</cffunction>

<cffunction name="create" returntype="any" access="public" output="false" hint="Creates a new object, saves it to the database (if the validation permits it) and returns it.	If the validation fails, the unsaved object (with errors added to it) is still returned. Property names and values can be passed in either using named arguments or as a struct to the properties argument.">
	<cfargument name="properties" type="struct" required="false" default="#StructNew()#" hint="See documentation for `new`">
	<cfscript>
		var returnValue = "";
		returnValue = new(argumentCollection=arguments);
		returnValue.save();
	</cfscript>
	<cfreturn returnValue>
