diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php
index 913140f..bb2b47b 100644
--- a/system/database/DB_cache.php
+++ b/system/database/DB_cache.php
@@ -97,7 +97,7 @@
 			return $this->obj->db->cache_off();
 		}
 	
-		$uri  = ($this->obj->uri->segment(1) == FALSE) ? 'default_'	: $this->obj->uri->segment(1).'_';
+		$uri  = ($this->obj->uri->segment(1) == FALSE) ? 'default.'	: $this->obj->uri->segment(1).'.';
 		$uri .= ($this->obj->uri->segment(2) == FALSE) ? 'index'	: $this->obj->uri->segment(2);
 		
 		$filepath = $uri.'/'.md5($sql);
@@ -125,7 +125,7 @@
 			return $this->obj->db->cache_off();
 		}
 
-		$uri  = ($this->obj->uri->segment(1) == FALSE) ? 'default_'	: $this->obj->uri->segment(1).'_';
+		$uri  = ($this->obj->uri->segment(1) == FALSE) ? 'default.'	: $this->obj->uri->segment(1).'.';
 		$uri .= ($this->obj->uri->segment(2) == FALSE) ? 'index'	: $this->obj->uri->segment(2);
 		
 		$dir_path = $this->obj->db->cachedir.$uri.'/';
@@ -171,7 +171,7 @@
 			$segment_two = ($this->obj->uri->segment(2) == FALSE) ? 'index' : $this->obj->uri->segment(2);
 		}
 		
-		$dir_path = $this->obj->db->cachedir.md5($segment_one.'_'.$segment_two).'/';
+		$dir_path = $this->obj->db->cachedir.md5($segment_one.'.'.$segment_two).'/';
 		
 		delete_files($dir_path, TRUE);
 	}
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index e8c4a82..b89ebbf 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -156,6 +156,23 @@
 		}
 	}
 	
+	// --------------------------------------------------------------------
+
+	/**
+	 * Load the Utilities Class
+	 *
+	 * @access	public
+	 * @return	string		 
+	 */		
+	function load_utilities()
+	{
+		$obj =& get_instance();
+			
+		require_once(BASEPATH.'database/DB_utility'.EXT);
+		require_once(BASEPATH.'database/drivers/'.$this->dbdriver.'/'.$this->dbdriver.'_utility'.EXT);
+		$class = 'CI_DB_'.$this->dbdriver.'_utility';
+		$obj->dbutil = new $class();
+	}
 	
 	// --------------------------------------------------------------------
 
diff --git a/system/libraries/Controller.php b/system/libraries/Controller.php
index 2a4c195..b09be6c 100644
--- a/system/libraries/Controller.php
+++ b/system/libraries/Controller.php
@@ -434,101 +434,10 @@
 	 * @return	void
 	 */
 	function _ci_init_database($params = '', $return = FALSE, $active_record = FALSE)
-	{	
-		if ($this->_ci_is_loaded('db') == TRUE AND $return == FALSE AND $active_record == FALSE)
-		{
-			return;
-		}
-	
-		// Load the DB config file if needed.  We'll test for a DSN string
-		if (is_string($params) AND strpos($params, '://') === FALSE)
-		{
-			include(APPPATH.'config/database'.EXT);
-			
-			$group = ($params == '') ? $active_group : $params;
-			
-			if ( ! isset($db[$group]))
-			{
-				show_error('You have specified an invalid database connection group: '.$group);
-			}
-			
-			$params = $db[$group];
-		}
-		
-		// No DB specified yet?  Beat them senseless...
-		if ( ! isset($params['dbdriver']) OR $params['dbdriver'] == '')
-		{
-			show_error('You have not selected a database type to connect to.');
-		}
-
-		// Load the DB classes.  Note: Since the active record class is optional
-		// we need to dynamically create a class that extends proper parent class 
-		// based on whether we're using the active record class or not.
-		// Kudos to Paul for discovering this clever use of eval()
-		
-		if ($active_record == TRUE)
-		{
-			$params['active_r'] = TRUE;
-		}
-		
-		require_once(BASEPATH.'database/DB_driver'.EXT);
-
-		if ( ! isset($params['active_r']) OR $params['active_r'] == TRUE) 
-		{
-			require_once(BASEPATH.'database/DB_active_rec'.EXT);
-			
-			if ( ! class_exists('CI_DB'))
-			{
-				eval('class CI_DB extends CI_DB_active_record { }');
-			}
-		}
-		else
-		{
-			if ( ! class_exists('CI_DB'))
-			{
-				eval('class CI_DB extends CI_DB_driver { }');
-			}
-		}
-				
-		require_once(BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver'.EXT);
-
-		// Instantiate the DB adapter
-		$driver = 'CI_DB_'.$params['dbdriver'].'_driver';
-		$DB = new $driver($params);
-		
-		if ($return === TRUE)
-		{
-			return $DB;
-		}
-		
-		$obj =& get_instance();
-		$obj->db =& $DB;
-	}
-	
-	// --------------------------------------------------------------------
-
-	/**
-	 * Initialize Database Ancillary Classes
-	 *
-	 * @access	private
-	 * @param	str		class name
-	 * @return	void
-	 */
-	function _ci_init_dbextra($class)
 	{
-		if ( ! $this->_ci_is_loaded('db'))
-		{
-			$this->_ci_init_database();
-		}
-			
-		if ($class == 'dbutil')
-		{
-			require_once(BASEPATH.'database/DB_utility'.EXT);
-			require_once(BASEPATH.'database/drivers/'.$this->db->dbdriver.'/'.$this->db->dbdriver.'_utility'.EXT);
-			$class = 'CI_DB_'.$this->db->dbdriver.'_utility';
-			$this->dbutil = new $class();
-		}
-	}
+		require_once(BASEPATH.'database/DB'.EXT);
+		return DB($params, $return, $active_record);
+	}	
 
 	// --------------------------------------------------------------------
 
diff --git a/system/libraries/Loader.php b/system/libraries/Loader.php
index 2534e69..6809054 100644
--- a/system/libraries/Loader.php
+++ b/system/libraries/Loader.php
@@ -110,7 +110,9 @@
 	function database($db = '', $return = FALSE, $active_record = FALSE)
 	{
 		$obj =& get_instance();
-	
+
+		return DB($params, $return, $active_record);
+
 		if ($return === TRUE)
 		{
 			return $obj->_ci_init_database($db, TRUE, $active_record);
@@ -125,20 +127,6 @@
 	// --------------------------------------------------------------------
 	
 	/**
-	 * Database Utiliy Loader
-	 *
-	 * @access	public
-	 * @return	object
-	 */	
-	function dbutil()
-	{
-		$obj =& get_instance();
-		$obj->_ci_init_dbextra('dbutil');
-	}
-
-	// --------------------------------------------------------------------
-	
-	/**
 	 * Scaffolding Loader
 	 *
 	 * @access	public
@@ -336,7 +324,24 @@
 		
 		log_message('debug', 'Plugins loaded: '.implode(', ', $plugins));
 	}
+
+	// --------------------------------------------------------------------
 	
+	/**
+	 * Load Plugins
+	 *
+	 * This is simply an alias to the above function in case the
+	 * user has written the plural form of this function.
+	 *
+	 * @access	public
+	 * @param	array
+	 * @return	void
+	 */
+	function plugins($plugins = array())
+	{
+		$this->plugin($plugins);
+	}
+
 	// --------------------------------------------------------------------
 	
 	/**
@@ -380,24 +385,7 @@
 		
 		log_message('debug', 'Scripts loaded: '.implode(', ', $scripts));
 	}
-	
-	// --------------------------------------------------------------------
-	
-	/**
-	 * Load Plugins
-	 *
-	 * This is simply an alias to the above function in case the
-	 * user has written the plural form of this function.
-	 *
-	 * @access	public
-	 * @param	array
-	 * @return	void
-	 */
-	function plugins($plugins = array())
-	{
-		$this->plugin($plugins);
-	}
-	
+		
 	// --------------------------------------------------------------------
 	
 	/**
diff --git a/user_guide/database/utilities.html b/user_guide/database/utilities.html
index fcfc249..f815039 100644
--- a/user_guide/database/utilities.html
+++ b/user_guide/database/utilities.html
@@ -85,14 +85,12 @@
 <a name="init"></a>

 <h2>Initializing the Utility Class</h2>

 

-<p class="important"><strong>Important:</strong>&nbsp; This class must be initialized independently since it is a separate class from the main Database class. 

-More info below...</p>

+<p class="important"><strong>Important:</strong>&nbsp; In order to initialize the Utility class, your database driver must

+already be running, since the utilities class is loaded from within the main DB class.</p>

 

-<p>To initialize this class please use the following code:</p>

+<p>Load the Utility Class as follows:</p>

 

-<code>$this->load->dbutil()</code>

-

-<p>You can also autoload this class from within your <dfn>config/autoload.php</dfn> file by specifying <kbd>dbutil</kbd> in the <samp>$autoload['libraries']</samp> array.</p>

+<code>$this->db->load_utilities()</code>

 

 <p>Once initialized you will access the functions using the <dfn>$this->dbutil</dfn> object:</p>

 

diff --git a/user_guide/general/controllers.html b/user_guide/general/controllers.html
index 0bfe973..20f207f 100644
--- a/user_guide/general/controllers.html
+++ b/user_guide/general/controllers.html
@@ -372,18 +372,16 @@
 <ul>

 <li>Controller</li>

 <li>CI_Base</li>

-<li>_ci_autoload</li>

-<li>_ci_autoloader</li>

 <li>_ci_assign_core</li>

-<li>_ci_init_class</li>

+<li>_ci_assign_to_models</li>

+<li>_ci_autoload</li>

 <li>_ci_init_database</li>

+<li>_ci_init_class</li>

 <li>_ci_init_model</li>

 <li>_ci_init_scaffolding</li>

 <li>_ci_is_loaded</li>

-<li>_ci_load</li>

 <li>_ci_load_class</li>

 <li>_ci_scaffolding</li>

-<li>_ci_set_view_path</li>

 </ul>

 

 <p><br />If you are running PHP 4 there are some additional reserved names. These ONLY apply if you are running PHP 4.</p>

@@ -397,12 +395,17 @@
 <li>helpers</li>

 <li>language</li>

 <li>library</li>

+<li>model</li>

 <li>plugin</li>

 <li>plugins</li>

 <li>scaffolding</li>

 <li>script</li>

 <li>view</li>

 <li>vars</li>

+<li>_ci_autoloader</li>

+<li>_ci_load</li>

+<li>_ci_object_to_array</li>

+<li>_ci_set_view_path</li>

 </ul>