diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php
index 8e1921d..128984d 100644
--- a/system/database/DB_utility.php
+++ b/system/database/DB_utility.php
@@ -181,7 +181,8 @@
 			return FALSE;			
     	}
     	
-    	return $this->_field_data($this->db->dbprefix.$table);
+		$query = $this->db->query($this->_field_data($this->db->dbprefix.$table));
+		return $query->field_data();
 	}	
 	
 	// --------------------------------------------------------------------
@@ -208,6 +209,32 @@
 		return current($fields);
 	}
 
+	// --------------------------------------------------------------------
+
+	/**
+	 * Create database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function create_database($name)
+	{
+		$sql = $this->_create_database($name);
+		
+		if (is_bool($sql))
+		{
+			return $sql;
+		}
+	
+		return $this->db->query($sql);
+	}
+
+	// --------------------------------------------------------------------
+
+
+
+
 
 
 	function create_table()
diff --git a/system/database/drivers/mssql/mssql_utility.php b/system/database/drivers/mssql/mssql_utility.php
index 61fe5fc..49b63b7 100644
--- a/system/database/drivers/mssql/mssql_utility.php
+++ b/system/database/drivers/mssql/mssql_utility.php
@@ -28,13 +28,13 @@
 	/**
 	 * Create database
 	 *
-	 * @access	public
+	 * @access	private
 	 * @param	string	the database name
 	 * @return	bool
 	 */
-	function create_database($name)
+	function _create_database($name)
 	{
-		return $this->db->query("CREATE DATABASE ".$name);
+		return "CREATE DATABASE ".$name;
 	}
 
 	// --------------------------------------------------------------------
@@ -84,7 +84,7 @@
 	 */
 	function drop_table($table)
 	{
-		"DROP TABLE ".$this->db->_escape_table($name);
+		return $this->db->query("DROP TABLE ".$this->db->_escape_table($name));
 	}
 
 	// --------------------------------------------------------------------
@@ -144,9 +144,7 @@
 	 */
 	function _field_data($table)
 	{
-		$sql = "SELECT TOP 1 FROM ".$this->db->_escape_table($table);
-		$query = $this->db->query($sql);
-		return $query->field_data();
+		return "SELECT TOP 1 FROM ".$this->db->_escape_table($table);	
 	}
 	
 
diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php
index 23c4e09..e5f8e85 100644
--- a/system/database/drivers/mysql/mysql_utility.php
+++ b/system/database/drivers/mysql/mysql_utility.php
@@ -27,13 +27,13 @@
 	/**
 	 * Create database
 	 *
-	 * @access	public
+	 * @access	private
 	 * @param	string	the database name
 	 * @return	bool
 	 */
-	function create_database($name)
+	function _create_database($name)
 	{
-		return $this->db->query("CREATE DATABASE ".$name);
+		return "CREATE DATABASE ".$name;
 	}
 
 	// --------------------------------------------------------------------
@@ -83,7 +83,7 @@
 	 */
 	function drop_table($table)
 	{
-		"DROP TABLE IF EXISTS ".$this->db->_escape_table($name);
+		return $this->db->query("DROP TABLE IF EXISTS ".$this->db->_escape_table($name));
 	}
 
 	// --------------------------------------------------------------------
@@ -143,9 +143,7 @@
 	 */
 	function _field_data($table)
 	{
-		$sql = "SELECT * FROM ".$this->db->_escape_table($table)." LIMIT 1";
-		$query = $this->db->query($sql);
-		return $query->field_data();
+		return "SELECT * FROM ".$this->db->_escape_table($table)." LIMIT 1";
 	}
 
 
diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php
index ca8f3fe..1775047 100644
--- a/system/database/drivers/mysqli/mysqli_utility.php
+++ b/system/database/drivers/mysqli/mysqli_utility.php
@@ -27,13 +27,13 @@
 	/**
 	 * Create database
 	 *
-	 * @access	public
+	 * @access	private
 	 * @param	string	the database name
 	 * @return	bool
 	 */
-	function create_database($name)
+	function _create_database($name)
 	{
-		return $this->db->query("CREATE DATABASE ".$name);
+		return "CREATE DATABASE ".$name;
 	}
 
 	// --------------------------------------------------------------------
@@ -83,7 +83,7 @@
 	 */
 	function drop_table($table)
 	{
-		"DROP TABLE IF EXISTS ".$this->db->_escape_table($name);
+		return $this->db->query("DROP TABLE IF EXISTS ".$this->db->_escape_table($name));
 	}
 
 	// --------------------------------------------------------------------
@@ -143,9 +143,7 @@
 	 */
 	function _field_data($table)
 	{
-		$sql = "SELECT * FROM ".$this->db->_escape_table($table)." LIMIT 1";
-		$query = $this->db->query($sql);
-		return $query->field_data();
+		return "SELECT * FROM ".$this->db->_escape_table($table)." LIMIT 1";
 	}
 	
 
diff --git a/system/database/drivers/oci8/oci8_utility.php b/system/database/drivers/oci8/oci8_utility.php
index 7e3ee72..74b0165 100644
--- a/system/database/drivers/oci8/oci8_utility.php
+++ b/system/database/drivers/oci8/oci8_utility.php
@@ -32,7 +32,7 @@
 	 * @param	string	the database name
 	 * @return	bool
 	 */
-	function create_database($name)
+	function _create_database($name)
 	{
 	}
 
@@ -130,9 +130,7 @@
      */
     function _field_data($table)
     {
-        $sql = "SELECT * FROM ".$this->db->_escape_table($table)." where rownum = 1";
-        $query = $this->db->query($sql);
-        return $query->field_data();
+		return "SELECT * FROM ".$this->db->_escape_table($table)." where rownum = 1";
     }
 
 
diff --git a/system/database/drivers/odbc/odbc_utility.php b/system/database/drivers/odbc/odbc_utility.php
index cfd829c..74f8d39 100644
--- a/system/database/drivers/odbc/odbc_utility.php
+++ b/system/database/drivers/odbc/odbc_utility.php
@@ -28,11 +28,11 @@
 	/**
 	 * Create database
 	 *
-	 * @access	public
+	 * @access	private
 	 * @param	string	the database name
 	 * @return	bool
 	 */
-	function create_database($name)
+	function _create_database()
 	{
 		// ODBC has no "create database" command since it's 
 		// designed to connect to an existing database
@@ -156,9 +156,7 @@
 	 */
 	function _field_data($table)
 	{
-		$sql = "SELECT TOP 1 FROM ".$this->db->_escape_table($table);
-		$query = $this->db->query($sql);
-		return $query->field_data();
+		return "SELECT TOP 1 FROM ".$this->db->_escape_table($table);
 	}
 
 
diff --git a/system/database/drivers/postgre/postgre_utility.php b/system/database/drivers/postgre/postgre_utility.php
index 7bb210a..8e51623 100644
--- a/system/database/drivers/postgre/postgre_utility.php
+++ b/system/database/drivers/postgre/postgre_utility.php
@@ -28,13 +28,13 @@
 	/**
 	 * Create database
 	 *
-	 * @access	public
+	 * @access	private
 	 * @param	string	the database name
 	 * @return	bool
 	 */
-	function create_database($name)
+	function _create_database($name)
 	{
-		return $this->db->query("CREATE DATABASE ".$name);
+		return "CREATE DATABASE ".$name;
 	}
 
 	// --------------------------------------------------------------------
@@ -84,7 +84,7 @@
 	 */
 	function drop_table($table)
 	{
-		"DROP TABLE ".$this->db->_escape_table($name)." CASCADE";
+		return $this->db->query("DROP TABLE ".$this->db->_escape_table($name)." CASCADE");
 	}
 
 	// --------------------------------------------------------------------
@@ -144,9 +144,7 @@
 	 */
 	function _field_data($table)
 	{
-		$sql = "SELECT * FROM ".$this->db->_escape_table($table)." LIMIT 1";
-		$query = $this->db->query($sql);
-		return $query->field_data();
+		return "SELECT * FROM ".$this->db->_escape_table($table)." LIMIT 1";
 	}
 
 
diff --git a/system/database/drivers/sqlite/sqlite_utility.php b/system/database/drivers/sqlite/sqlite_utility.php
index 744ca3f..14b406a 100644
--- a/system/database/drivers/sqlite/sqlite_utility.php
+++ b/system/database/drivers/sqlite/sqlite_utility.php
@@ -32,7 +32,7 @@
 	 * @param	string	the database name
 	 * @return	bool
 	 */
-	function create_database()
+	function _create_database()
 	{
 		// In SQLite, a database is created when you connect to the database
 		return TRUE;
@@ -152,9 +152,7 @@
 	 */
 	function _field_data($table)
 	{
-		$sql = "SELECT * FROM ".$this->db->_escape_table($table)." LIMIT 1";
-		$query = $this->db->query($sql);
-		return $query->field_data();
+		return "SELECT * FROM ".$this->db->_escape_table($table)." LIMIT 1";
 	}