Update Upload lib docs
diff --git a/user_guide_src/source/libraries/file_uploading.rst b/user_guide_src/source/libraries/file_uploading.rst
index a92d3af..695998d 100644
--- a/user_guide_src/source/libraries/file_uploading.rst
+++ b/user_guide_src/source/libraries/file_uploading.rst
@@ -5,6 +5,13 @@
 CodeIgniter's File Uploading Class permits files to be uploaded. You can
 set various preferences, restricting the type and size of the files.
 
+.. contents::
+  :local:
+
+.. raw:: html
+
+  <div class="custom-index container"></div>
+
 ***********
 The Process
 ***********
@@ -240,105 +247,97 @@
 Class Reference
 ***************
 
-The following methods are available:
+.. class:: CI_Upload
 
-$this->upload->do_upload()
-==========================
+	.. method:: do_upload([$field = 'userfile'])
 
-Performs the upload based on the preferences you've set.
+		:param string $field: name of the form field
+		:returns: bool
 
-.. note:: By default the upload routine expects the file to come from
-	a form field called userfile, and the form must be of type
-	"multipart".
+		Performs the upload based on the preferences you've set.
 
-::
+		.. note:: By default the upload routine expects the file to come from
+			a form field called userfile, and the form must be of type
+			"multipart".
 
-	<form method="post" action="some_action" enctype="multipart/form-data" />
+		::
 
-If you would like to set your own field name simply pass its value to
-the ``do_upload()`` method::
+			<form method="post" action="some_action" enctype="multipart/form-data" />
 
-	$field_name = "some_field_name";
-	$this->upload->do_upload($field_name);
+		If you would like to set your own field name simply pass its value to
+		the ``do_upload()`` method::
 
-$this->upload->display_errors()
-===============================
+			$field_name = "some_field_name";
+			$this->upload->do_upload($field_name);
 
-Retrieves any error messages if the ``do_upload()`` method returned
-false. The method does not echo automatically, it returns the data so
-you can assign it however you need.
 
-Formatting Errors
-*****************
+	.. method:: display_errors([$open = '<p>'[, $close = '</p>']])
 
-By default the above method wraps any errors within <p> tags. You can
-set your own delimiters like this::
+		:param string $open: Opening markup
+		:param string $close: Closing markup
+		:returns: string
 
-	$this->upload->display_errors('<p>', '</p>');
+		Retrieves any error messages if the ``do_upload()`` method returned
+		false. The method does not echo automatically, it returns the data so
+		you can assign it however you need.
 
-$this->upload->data()
-=====================
+		**Formatting Errors**
 
-This is a helper method that returns an array containing all of the
-data related to the file you uploaded. Here is the array prototype::
+			By default the above method wraps any errors within <p> tags. You can
+			set your own delimiters like this::
 
-	Array
-	(
-		[file_name]	=> mypic.jpg
-		[file_type]	=> image/jpeg
-		[file_path]	=> /path/to/your/upload/
-		[full_path]	=> /path/to/your/upload/jpg.jpg
-		[raw_name]	=> mypic
-		[orig_name]	=> mypic.jpg
-		[client_name]	=> mypic.jpg
-		[file_ext]	=> .jpg
-		[file_size]	=> 22.2
-		[is_image]	=> 1
-		[image_width]	=> 800
-		[image_height]	=> 600
-		[image_type]	=> jpeg
-		[image_size_str] => width="800" height="200"
-	)
+				$this->upload->display_errors('<p>', '</p>');
 
-To return one element from the array::
 
-	$this->upload->data('file_name');	// Returns: mypic.jpg
+	.. method:: data([$index = NULL])
 
-Explanation
-***********
+		:param string $data: element to return instead of the full array
+		:returns: mixed
 
-Here is an explanation of the above array items.
+		This is a helper method that returns an array containing all of the
+		data related to the file you uploaded. Here is the array prototype::
 
-Item
-Description
-**file_name**
-The name of the file that was uploaded including the file extension.
-**file_type**
-The file's Mime type
-**file_path**
-The absolute server path to the file
-**full_path**
-The absolute server path including the file name
-**raw_name**
-The file name without the extension
-**orig_name**
-The original file name. This is only useful if you use the encrypted
-name option.
-**client_name**
-The file name as supplied by the client user agent, prior to any file
-name preparation or incrementing.
-**file_ext**
-The file extension with period
-**file_size**
-The file size in kilobytes
-**is_image**
-Whether the file is an image or not. 1 = image. 0 = not.
-**image_width**
-Image width.
-**image_height**
-Image height
-**image_type**
-Image type. Typically the file extension without the period.
-**image_size_str**
-A string containing the width and height. Useful to put into an image
-tag.
\ No newline at end of file
+			Array
+			(
+				[file_name]	=> mypic.jpg
+				[file_type]	=> image/jpeg
+				[file_path]	=> /path/to/your/upload/
+				[full_path]	=> /path/to/your/upload/jpg.jpg
+				[raw_name]	=> mypic
+				[orig_name]	=> mypic.jpg
+				[client_name]	=> mypic.jpg
+				[file_ext]	=> .jpg
+				[file_size]	=> 22.2
+				[is_image]	=> 1
+				[image_width]	=> 800
+				[image_height]	=> 600
+				[image_type]	=> jpeg
+				[image_size_str] => width="800" height="200"
+			)
+
+		To return one element from the array::
+
+			$this->upload->data('file_name');	// Returns: mypic.jpg
+
+		**Explanation**
+
+			Here is an explanation of the above array items.
+
+			================	================================================
+			Item							Description
+			================	================================================
+			file_name					The name of the file that was uploaded including the file extension.
+			file_type					The file's Mime type
+			file_path					The absolute server path to the file
+			full_path					The absolute server path including the file name
+			raw_name					The file name without the extension
+			orig_name					The original file name. This is only useful if you use the encrypted name option.
+			client_name				The file name as supplied by the client user agent, prior to any file name preparation or incrementing.
+			file_ext					The file extension with period
+			file_size					The file size in kilobytes
+			is_image					Whether the file is an image or not. 1 = image. 0 = not.
+			image_width				Image width.
+			image_height			Image height
+			image_type				Image type. Typically the file extension without the period.
+			image_size_str		A string containing the width and height. Useful to put into an image tag.
+			================	================================================
\ No newline at end of file