-<!--- PUBLIC MODEL CLASS METHODS --->
-
-<cffunction name="findAll" returntype="any" access="public" output="false">
-	<cfargument name="where" type="string" required="false" default="">
-	<cfargument name="order" type="string" required="false">
-	<cfargument name="group" type="string" required="false">
-	<cfargument name="select" type="string" required="false" default="">
-	<cfargument name="distinct" type="boolean" required="false" default="false">
-	<cfargument name="include" type="string" required="false" default="">
-	<cfargument name="maxRows" type="numeric" required="false" default="-1">
-	<cfargument name="page" type="numeric" required="false" default="0">
-	<cfargument name="perPage" type="numeric" required="false">
-	<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">
-	<cfargument name="parameterize" type="any" required="false">
-	<cfargument name="returnAs" type="string" required="false">
-	<cfargument name="returnIncluded" type="boolean" required="false">
-	<cfargument name="callbacks" type="boolean" required="false" default="true">
-	<cfargument name="includeSoftDeletes" type="boolean" required="false" default="false">
-	<cfargument name="$limit" type="numeric" required="false" default="0">
-	<cfargument name="$offset" type="numeric" required="false" default="0">
-	<cfscript>
-		var loc = {};
+<cfscript>
+	/*
+	*  PUBLIC MODEL CLASS METHODS
+	*/
+	
+	public any function findAll(
+		string where="",
+		string order,
+		string group,
+		string select="",
+		boolean distinct="false",
+		string include="",
+		numeric maxRows="-1",
+		numeric page="0",
+		numeric perPage,
+		numeric count="0",
+		string handle="query",
+		any cache="",
+		boolean reload,
+		any parameterize,
+		string returnAs,
+		boolean returnIncluded,
+		boolean callbacks="true",
+		boolean includeSoftDeletes="false",
+		numeric $limit="0",
+		numeric $offset="0"
+	) { 
 		$args(name="findAll", args=arguments);
 		arguments.include = $listClean(arguments.include);
 		arguments.where = $cleanInList(arguments.where);

			if (Len(arguments.order))
			{
				// insert primary keys to order clause unless they are already there, this guarantees that the ordering is unique which is required to make pagination work properly
				loc.compareList = $listClean(ReplaceNoCase(ReplaceNoCase(arguments.order, " ASC", "", "all"), " DESC", "", "all"));
				loc.iEnd = ListLen(primaryKeys());
				for (loc.i=1; loc.i <= loc.iEnd; loc.i++)
				{
					loc.item = primaryKeys(loc.i);
					if (!ListFindNoCase(loc.compareList, loc.item) && !ListFindNoCase(loc.compareList, tableName() & "." & loc.item))
					{
						arguments.order = ListAppend(arguments.order, loc.item);
					}
				}
			}

						$throw(type="Wheels.IncorrectArgumentValue", message="Incorrect Arguments", extendedInfo="The `returnAs` may be either `query`, `struct(s)` or `object(s)`");
					}
			}
		} 
		return local.rv;
	}

	public any function findByKey(
		required any key,
		string select="",
		string include="",
		any cache="",
		boolean reload,
		any parameterize,
		string returnAs,
		boolean callbacks="true",
		boolean includeSoftDeletes="false"
	) { 
		$args(name="findByKey", args=arguments);
		arguments.include = $listClean(arguments.include);
		if (Len(arguments.key))
