Change class filenames to Ucfirst
diff --git a/user_guide_src/source/general/cli.rst b/user_guide_src/source/general/cli.rst
index 998d2a9..4145d5c 100644
--- a/user_guide_src/source/general/cli.rst
+++ b/user_guide_src/source/general/cli.rst
@@ -33,7 +33,7 @@
 ==========================
 
 Let's create a simple controller so you can see it in action. Using your
-text editor, create a file called tools.php, and put the following code
+text editor, create a file called Tools.php, and put the following code
 in it::
 
 	<?php
diff --git a/user_guide_src/source/general/controllers.rst b/user_guide_src/source/general/controllers.rst
index 04f2327..d8ef824 100644
--- a/user_guide_src/source/general/controllers.rst
+++ b/user_guide_src/source/general/controllers.rst
@@ -18,7 +18,7 @@
 	example.com/index.php/blog/
 
 In the above example, CodeIgniter would attempt to find a controller
-named blog.php and load it.
+named Blog.php and load it.
 
 **When a controller's name matches the first segment of a URI, it will
 be loaded.**
@@ -27,7 +27,7 @@
 ==========================
 
 Let's create a simple controller so you can see it in action. Using your
-text editor, create a file called blog.php, and put the following code
+text editor, create a file called Blog.php, and put the following code
 in it::
 
 	<?php
@@ -41,6 +41,8 @@
 
 Then save the file to your *application/controllers/* directory.
 
+.. important:: The file must be called 'Blog.php', with a capital 'B'.
+
 Now visit the your site using a URL similar to this::
 
 	example.com/index.php/blog/
@@ -136,7 +138,7 @@
 To specify a default controller, open your **application/config/routes.php**
 file and set this variable::
 
-	$route['default_controller'] = 'blog';
+	$route['default_controller'] = 'Blog';
 
 Where Blog is the name of the controller class you want used. If you now
 load your main index.php file without specifying any URI segments you'll
@@ -272,7 +274,7 @@
 	specify the folder. For example, let's say you have a controller located
 	here::
 
-		application/controllers/products/shoes.php
+		application/controllers/products/Shoes.php
 
 	To call the above controller your URI will look something like this::
 
diff --git a/user_guide_src/source/general/creating_libraries.rst b/user_guide_src/source/general/creating_libraries.rst
index 4fc8ed7..4beb600 100644
--- a/user_guide_src/source/general/creating_libraries.rst
+++ b/user_guide_src/source/general/creating_libraries.rst
@@ -42,8 +42,7 @@
 The Class File
 ==============
 
-Classes should have this basic prototype (Note: We are using the name
-Someclass purely as an example)::
+Classes should have this basic prototype::
 
 	<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 
 
@@ -56,6 +55,8 @@
 
 	/* End of file Someclass.php */
 
+.. note:: We are using the name Someclass purely as an example.
+
 Using Your Class
 ================
 
@@ -81,7 +82,7 @@
 
 	$params = array('type' => 'large', 'color' => 'red');
 
-	$this->load->library('Someclass', $params);
+	$this->load->library('someclass', $params);
 
 If you use this feature you must set up your class constructor to expect
 data::
diff --git a/user_guide_src/source/general/libraries.rst b/user_guide_src/source/general/libraries.rst
index 6e1c8b6..9bbda51 100644
--- a/user_guide_src/source/general/libraries.rst
+++ b/user_guide_src/source/general/libraries.rst
@@ -29,4 +29,4 @@
 ===========================
 
 Please read the section of the user guide that discusses how to
-:doc:`create your own libraries <creating_libraries>`.
+:doc:`create your own libraries <creating_libraries>`.
\ No newline at end of file
diff --git a/user_guide_src/source/general/models.rst b/user_guide_src/source/general/models.rst
index a028a95..c4fd124 100644
--- a/user_guide_src/source/general/models.rst
+++ b/user_guide_src/source/general/models.rst
@@ -84,8 +84,7 @@
 the first letter capitalized with the rest of the name lowercase. Make
 sure your class extends the base Model class.
 
-The file name will be a lower case version of your class name. For
-example, if your class is this::
+The file name must match the class name. For example, if this is your class::
 
 	class User_model extends CI_Model {
 
@@ -98,7 +97,7 @@
 
 Your file will be this::
 
-	application/models/user_model.php
+	application/models/User_model.php
 
 Loading a Model
 ===============
@@ -111,7 +110,7 @@
 
 If your model is located in a sub-directory, include the relative path
 from your models directory. For example, if you have a model located at
-*application/models/blog/queries.php* you'll load it using::
+*application/models/blog/Queries.php* you'll load it using::
 
 	$this->load->model('blog/queries');
 
@@ -181,4 +180,4 @@
 	$config['pconnect'] = FALSE;
 	$config['db_debug'] = TRUE;
 
-	$this->load->model('Model_name', '', $config);
\ No newline at end of file
+	$this->load->model('model_name', '', $config);
\ No newline at end of file
diff --git a/user_guide_src/source/general/styleguide.rst b/user_guide_src/source/general/styleguide.rst
index 144b362..1683b04 100644
--- a/user_guide_src/source/general/styleguide.rst
+++ b/user_guide_src/source/general/styleguide.rst
@@ -71,13 +71,42 @@
 
 	echo "Here's my code!";
 
-	/* End of file myfile.php */
+	/* End of file Myfile.php */
 	/* Location: ./system/modules/mymodule/myfile.php */
 
 .. note:: There should be no empty line or newline character(s) following
 	the closing comments. If you happen to see one when
 	submitting a pull request, please check your IDE settings and fix it.
 
+File Naming
+===========
+
+Class files must be named in a Ucfirst-like manner, while any other file name
+(configurations, views, generic scripts, etc.) should be in all lowercase.
+
+**INCORRECT**::
+
+	somelibrary.php
+	someLibrary.php
+	SOMELIBRARY.php
+	Some_Library.php
+
+	Application_config.php
+	Application_Config.php
+	applicationConfig.php
+
+**CORRECT**::
+
+	SomeLibrary.php
+	Some_Library.php
+
+	applicationconfig.php
+	application_config.php
+
+Furthermore, class file names should match the name of the class itself.
+For example, if you have a class named `Myclass`, then its filename must
+be **Myclass.php**.
+
 Class and Method Naming
 =======================
 
diff --git a/user_guide_src/source/general/views.rst b/user_guide_src/source/general/views.rst
index 4b1ab3c..2fc0cb2 100644
--- a/user_guide_src/source/general/views.rst
+++ b/user_guide_src/source/general/views.rst
@@ -45,7 +45,7 @@
 .. note:: The .php file extension does not need to be specified
 	unless you use something other than .php.
 
-Now, open the controller file you made earlier called blog.php, and
+Now, open the controller file you made earlier called Blog.php, and
 replace the echo statement with the view loading method::
 
 	<?php
diff --git a/user_guide_src/source/helpers/smiley_helper.rst b/user_guide_src/source/helpers/smiley_helper.rst
index 7069b46..3925f8b 100644
--- a/user_guide_src/source/helpers/smiley_helper.rst
+++ b/user_guide_src/source/helpers/smiley_helper.rst
@@ -43,7 +43,7 @@
 The Controller
 --------------
 
-In your `application/controllers/` folder, create a file called
+In your **application/controllers/** directory, create a file called
 smileys.php and place the code below in it.
 
 .. important:: Change the URL in the :php:func:`get_clickable_smileys()`
@@ -70,7 +70,7 @@
 
 	}
 
-In your `application/views/` folder, create a file called `smiley_view.php`
+In your **application/views/** folder, create a file called **smiley_view.php**
 and place this code in it::
 
 	<html>
diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst
index 6c5f569..3e8307c 100644
--- a/user_guide_src/source/installation/upgrade_300.rst
+++ b/user_guide_src/source/installation/upgrade_300.rst
@@ -17,22 +17,63 @@
 .. note:: If you have any custom developed files in these folders please
 	make copies of them first.
 
+**************************************
+Step 2: Update your classes file names
+**************************************
+
+Starting with CodeIgniter 3.0, all class filenames (libraries, drivers, controllers
+and models) must be named in a Ucfirst-like manner or in other words - they must
+start with a capital letter.
+
+For example, if you have the following library file:
+
+	application/libraries/mylibrary.php
+
+... then you'll have to rename it to:
+
+	application/libraries/Mylibrary.php
+
+The same goes for driver libraries and extensions and/or overrides of CodeIgniter's
+own libraries and core classes.
+
+	application/libraries/MY_email.php
+	application/core/MY_log.php
+
+The above files should respectively be renamed to the following:
+
+	application/libraries/MY_Email.php
+	application/core/MY_Log.php
+
+Controllers:
+
+	application/controllers/welcome.php	->	application/controllers/Welcome.php
+
+Models:
+
+	application/models/misc_model.php	->	application/models/Misc_model.php
+
+Please note that this DOES NOT affect directories, configuration files, views,
+helpers, hooks and anything else - it is only applied to classes.
+
+You must now follow just one simple rule - class names in Ucfirst and everything else
+in lowercase.
+
 ********************************
-Step 2: Replace config/mimes.php
+Step 3: Replace config/mimes.php
 ********************************
 
 This config file has been updated to contain more user mime-types, please copy
 it to _application/config/mimes.php*.
 
 **************************************************************
-Step 3: Remove $autoload['core'] from your config/autoload.php
+Step 4: Remove $autoload['core'] from your config/autoload.php
 **************************************************************
 
 Use of the ``$autoload['core']`` config array has been deprecated as of CodeIgniter 1.4.1 and is now removed.
 Move any entries that you might have listed there to ``$autoload['libraries']`` instead.
 
 ***************************************************
-Step 4: Move your Log class overrides or extensions
+Step 5: Move your Log class overrides or extensions
 ***************************************************
 
 The Log Class is considered as a "core" class and is now located in the
@@ -43,7 +84,7 @@
 	application/libraries/MY_Log.php -> application/core/MY_Log.php
 
 *********************************************************
-Step 5: Convert your Session usage from library to driver
+Step 6: Convert your Session usage from library to driver
 *********************************************************
 
 When you load (or autoload) the Session library, you must now load it as a driver instead of a library. This means
@@ -67,7 +108,7 @@
 the drivers, so your extension may have to be broken down into separate library and driver class extensions.
 
 ***************************************
-Step 6: Update your config/database.php
+Step 7: Update your config/database.php
 ***************************************
 
 Due to 3.0.0's renaming of Active Record to Query Builder, inside your `config/database.php`, you will
@@ -79,13 +120,13 @@
 	$query_builder = TRUE;
 
 *******************************************
-Step 7: Move your error templates directory
+Step 8: Move your error templates directory
 *******************************************
 
 In version 3.0.0, the errors folder has been moved from _application/errors* to _application/views/errors*.
 
 *******************************************************
-Step 8: Update your config/routes.php containing (:any)
+Step 9: Update your config/routes.php containing (:any)
 *******************************************************
 
 Historically, CodeIgniter has always provided the **:any** wildcard in routing,
@@ -104,31 +145,6 @@
 	(.+)	// matches ANYTHING
 	(:any)	// matches any character, except for '/'
 
-*****************************************
-Step 9: Update your libraries' file names
-*****************************************
-
-CodeIgniter 3.0 only allows library file names to be named in a *ucfirst* manner
-(meaning that the first letter of the class name must be a capital). For example,
-if you have the following library file:
-
-	application/libraries/mylibrary.php
-
-... then you'll have to rename it to:
-
-	application/libraries/Mylibrary.php
-
-The same goes for driver libraries and extensions and/or overrides of CodeIgniter's
-own libraries and core classes.
-
-	application/libraries/MY_email.php
-	application/core/MY_Log.php
-
-The above files should respectively be renamed to the following:
-
-	application/libraries/MY_Email.php
-	application/core/MY_Log.php
-
 *****************************************************************************
 Step 10: Check the calls to Array Helper's element() and elements() functions
 *****************************************************************************
diff --git a/user_guide_src/source/libraries/file_uploading.rst b/user_guide_src/source/libraries/file_uploading.rst
index a92d3af..a295d74 100644
--- a/user_guide_src/source/libraries/file_uploading.rst
+++ b/user_guide_src/source/libraries/file_uploading.rst
@@ -83,7 +83,7 @@
 The Controller
 ==============
 
-Using a text editor, create a controller called upload.php. In it, place
+Using a text editor, create a controller called Upload.php. In it, place
 this code and save it to your **application/controllers/** directory::
 
 	<?php
diff --git a/user_guide_src/source/libraries/loader.rst b/user_guide_src/source/libraries/loader.rst
index b048f48..1597bf1 100644
--- a/user_guide_src/source/libraries/loader.rst
+++ b/user_guide_src/source/libraries/loader.rst
@@ -192,7 +192,7 @@
 
 If your model is located in a subdirectory, include the relative path
 from your models directory. For example, if you have a model located at
-application/models/blog/queries.php you'll load it using::
+application/models/blog/Queries.php you'll load it using::
 
 	$this->load->model('blog/queries');
 
diff --git a/user_guide_src/source/libraries/migration.rst b/user_guide_src/source/libraries/migration.rst
index b734f5c..9dc3c08 100644
--- a/user_guide_src/source/libraries/migration.rst
+++ b/user_guide_src/source/libraries/migration.rst
@@ -86,7 +86,7 @@
 Usage Example
 *************
 
-In this example some simple code is placed in **application/controllers/migrate.php** 
+In this example some simple code is placed in **application/controllers/Migrate.php** 
 to update the schema.::
 
 	<?php
diff --git a/user_guide_src/source/libraries/xmlrpc.rst b/user_guide_src/source/libraries/xmlrpc.rst
index a43c488..d2d695e 100644
--- a/user_guide_src/source/libraries/xmlrpc.rst
+++ b/user_guide_src/source/libraries/xmlrpc.rst
@@ -296,7 +296,7 @@
 The Client
 ----------
 
-Using a text editor, create a controller called xmlrpc_client.php. In
+Using a text editor, create a controller called Xmlrpc_client.php. In
 it, place this code and save it to your application/controllers/
 folder::
 
@@ -337,7 +337,7 @@
 The Server
 ----------
 
-Using a text editor, create a controller called xmlrpc_server.php. In
+Using a text editor, create a controller called Xmlrpc_server.php. In
 it, place this code and save it to your application/controllers/
 folder::
 
diff --git a/user_guide_src/source/tutorial/news_section.rst b/user_guide_src/source/tutorial/news_section.rst
index d7754e9..c21f4e6 100644
--- a/user_guide_src/source/tutorial/news_section.rst
+++ b/user_guide_src/source/tutorial/news_section.rst
@@ -16,7 +16,7 @@
 database or other data stores. They represent your data.
 
 Open up the application/models directory and create a new file called
-news_model.php and add the following code. Make sure you've configured
+News_model.php and add the following code. Make sure you've configured
 your database properly as described
 `here <../database/configuration.html>`_.
 
@@ -85,7 +85,7 @@
 that are going to display the news items to the user. This could be done
 in our pages controller created earlier, but for the sake of clarity, a
 new "news" controller is defined. Create the new controller at
-application/controllers/news.php.
+application/controllers/News.php.
 
 ::
 
diff --git a/user_guide_src/source/tutorial/static_pages.rst b/user_guide_src/source/tutorial/static_pages.rst
index 97c7460..330a50e 100644
--- a/user_guide_src/source/tutorial/static_pages.rst
+++ b/user_guide_src/source/tutorial/static_pages.rst
@@ -20,7 +20,7 @@
 As URL schemes become more complex, this may change. But for now, this
 is all we will need to know.
 
-Create a file at application/controllers/pages.php with the following
+Create a file at application/controllers/Pages.php with the following
 code.
 
 ::