diff --git a/docs/Makefile b/docs/Makefile
index 600951b..9effe0e 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -3,7 +3,6 @@
 
 # You can set these variables from the command line.
 SPHINXOPTS    =
-SPHINXAPIDOC  = sphinx-apidoc
 SPHINXBUILD   = sphinx-build
 PAPER         =
 BUILDDIR      = _build
@@ -51,48 +50,45 @@
 clean:
 	rm -rf $(BUILDDIR)/*
 
-autodoc:
-	$(SPHINXAPIDOC) -f -o ./ ../mobly
-
 .PHONY: html
-html: autodoc
+html:
 	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
 	@echo
 	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
 
 .PHONY: dirhtml
-dirhtml: autodoc
+dirhtml:
 	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
 	@echo
 	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
 
 .PHONY: singlehtml
-singlehtml: autodoc
+singlehtml:
 	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
 	@echo
 	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
 
 .PHONY: pickle
-pickle: autodoc
+pickle:
 	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
 	@echo
 	@echo "Build finished; now you can process the pickle files."
 
 .PHONY: json
-json: autodoc
+json:
 	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
 	@echo
 	@echo "Build finished; now you can process the JSON files."
 
 .PHONY: htmlhelp
-htmlhelp: autodoc
+htmlhelp:
 	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
 	@echo
 	@echo "Build finished; now you can run HTML Help Workshop with the" \
 	      ".hhp project file in $(BUILDDIR)/htmlhelp."
 
 .PHONY: qthelp
-qthelp: autodoc
+qthelp:
 	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
 	@echo
 	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
@@ -102,7 +98,7 @@
 	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Mobly.qhc"
 
 .PHONY: applehelp
-applehelp: autodoc
+applehelp:
 	$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
 	@echo
 	@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
@@ -111,7 +107,7 @@
 	      "bundle."
 
 .PHONY: devhelp
-devhelp: autodoc
+devhelp:
 	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
 	@echo
 	@echo "Build finished."
@@ -121,19 +117,19 @@
 	@echo "# devhelp"
 
 .PHONY: epub
-epub: autodoc
+epub:
 	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
 	@echo
 	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
 
 .PHONY: epub3
-epub3: autodoc
+epub3:
 	$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
 	@echo
 	@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
 
 .PHONY: latex
-latex: autodoc
+latex:
 	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
 	@echo
 	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@@ -141,47 +137,47 @@
 	      "(use \`make latexpdf' here to do that automatically)."
 
 .PHONY: latexpdf
-latexpdf: autodoc
+latexpdf:
 	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
 	@echo "Running LaTeX files through pdflatex..."
 	$(MAKE) -C $(BUILDDIR)/latex all-pdf
 	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
 
 .PHONY: latexpdfja
-latexpdfja: autodoc
+latexpdfja:
 	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
 	@echo "Running LaTeX files through platex and dvipdfmx..."
 	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
 	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
 
 .PHONY: lualatexpdf
-lualatexpdf: autodoc
+lualatexpdf:
 	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
 	@echo "Running LaTeX files through lualatex..."
 	$(MAKE) PDFLATEX=lualatex -C $(BUILDDIR)/latex all-pdf
 	@echo "lualatex finished; the PDF files are in $(BUILDDIR)/latex."
 
 .PHONY: xelatexpdf
-xelatexpdf: autodoc
+xelatexpdf:
 	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
 	@echo "Running LaTeX files through xelatex..."
 	$(MAKE) PDFLATEX=xelatex -C $(BUILDDIR)/latex all-pdf
 	@echo "xelatex finished; the PDF files are in $(BUILDDIR)/latex."
 
 .PHONY: text
-text: autodoc
+text:
 	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
 	@echo
 	@echo "Build finished. The text files are in $(BUILDDIR)/text."
 
 .PHONY: man
-man: autodoc
+man:
 	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
 	@echo
 	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
 
 .PHONY: texinfo
-texinfo: autodoc
+texinfo:
 	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
 	@echo
 	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@@ -189,57 +185,57 @@
 	      "(use \`make info' here to do that automatically)."
 
 .PHONY: info
-info: autodoc
+info:
 	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
 	@echo "Running Texinfo files through makeinfo..."
 	make -C $(BUILDDIR)/texinfo info
 	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
 
 .PHONY: gettext
-gettext: autodoc
+gettext:
 	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
 	@echo
 	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
 
 .PHONY: changes
-changes: autodoc
+changes:
 	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
 	@echo
 	@echo "The overview file is in $(BUILDDIR)/changes."
 
 .PHONY: linkcheck
-linkcheck: autodoc
+linkcheck:
 	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
 	@echo
 	@echo "Link check complete; look for any errors in the above output " \
 	      "or in $(BUILDDIR)/linkcheck/output.txt."
 
 .PHONY: doctest
-doctest: autodoc
+doctest:
 	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
 	@echo "Testing of doctests in the sources finished, look at the " \
 	      "results in $(BUILDDIR)/doctest/output.txt."
 
 .PHONY: coverage
-coverage: autodoc
+coverage:
 	$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
 	@echo "Testing of coverage in the sources finished, look at the " \
 	      "results in $(BUILDDIR)/coverage/python.txt."
 
 .PHONY: xml
-xml: autodoc
+xml:
 	$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
 	@echo
 	@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
 
 .PHONY: pseudoxml
-pseudoxml: autodoc
+pseudoxml:
 	$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
 	@echo
 	@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
 
 .PHONY: dummy
-dummy: autodoc
+dummy:
 	$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
 	@echo
 	@echo "Build finished. Dummy builder generates no files."
diff --git a/docs/android_device_service.md b/docs/android_device_service.md
index f9b4ba1..220ff19 100644
--- a/docs/android_device_service.md
+++ b/docs/android_device_service.md
@@ -21,7 +21,7 @@
 
 Here is a dummy service example:
 
-**my_service.py**
+`my_service.py`
 
 ```python
 class Configs(object):
diff --git a/docs/conf.py b/docs/conf.py
index 02075ff..c116c19 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -81,7 +81,10 @@
 # This patterns also effect to html_static_path and html_extra_path
 exclude_patterns = ['_build',
     'Thumbs.db',
-    '.DS_Store']
+    '.DS_Store',
+    'tutorial.md',
+    'instrumentation_tutorial.md',
+    'android_device_service.md']
 
 # The name of the Pygments (syntax highlighting) style to use.
 pygments_style = 'sphinx'
diff --git a/docs/index.rst b/docs/index.rst
index 779706e..093c955 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -6,51 +6,12 @@
 Welcome to Mobly's documentation!
 =================================
 
-**Mobly** is a Python-based test framework that specializes in supporting
-test cases that require multiple devices, complex environments, or custom
-hardware setups.
-
-Here are some example use cases:
-
-* P2P data transfer between two devices
-* Conference calls across three phones
-* Wearable device interacting with a phone
-* Internet-of-Things devices interacting with each other
-* Testing RF characteristics of devices with special equipment
-* Testing LTE network by controlling phones, base stations, and eNBs
-
-Mobly can support many different types of devices and equipment, and it's
-easy to plug your own device or custom equipment/service into Mobly.
-
-Mobly comes with a set of libraries to control common devices like Android
-devices.
-
-While developed by Googlers, Mobly is not an official Google product.
-
 .. toctree::
-   :maxdepth: 2
+   :maxdepth: 4
+   :caption: Contents:
 
-   tutorial
-   android_device_service
-   instrumentation_tutorial
    mobly
 
-License
--------
-
-Copyright 2019 Google Inc. All Rights Reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
 
 Indices and tables
 ==================
diff --git a/docs/instrumentation_tutorial.md b/docs/instrumentation_tutorial.md
index 4291bc7..ff3d258 100644
--- a/docs/instrumentation_tutorial.md
+++ b/docs/instrumentation_tutorial.md
@@ -1,9 +1,8 @@
 # Running Android instrumentation tests with Mobly
 
 This tutorial shows how to write and execute Mobly tests for running Android
-instrumentation tests. For more details about instrumentation tests, please
-refer to
-[Android Studio](https://developer.android.com/studio/test/index.html).
+instrumentation tests. For more details about instrumentation tests, please refer to
+https://developer.android.com/studio/test/index.html.
 
 ## Setup Requirements
 
diff --git a/docs/mobly.controllers.android_device_lib.rst b/docs/mobly.controllers.android_device_lib.rst
new file mode 100644
index 0000000..a8d5395
--- /dev/null
+++ b/docs/mobly.controllers.android_device_lib.rst
@@ -0,0 +1,108 @@
+mobly.controllers.android_device_lib package
+============================================
+
+Subpackages
+-----------
+
+.. toctree::
+
+    mobly.controllers.android_device_lib.services
+
+Submodules
+----------
+
+mobly.controllers.android_device_lib.adb module
+-----------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.adb
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.callback_handler module
+------------------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.callback_handler
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.errors module
+--------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.errors
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.event_dispatcher module
+------------------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.event_dispatcher
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.fastboot module
+----------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.fastboot
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.jsonrpc_client_base module
+---------------------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.jsonrpc_client_base
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.jsonrpc_shell_base module
+--------------------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.jsonrpc_shell_base
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.service_manager module
+--------------------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.service_manager
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.sl4a_client module
+-------------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.sl4a_client
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.snippet_client module
+----------------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.snippet_client
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.snippet_event module
+--------------------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.snippet_event
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+Module contents
+---------------
+
+.. automodule:: mobly.controllers.android_device_lib
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/docs/mobly.controllers.android_device_lib.services.rst b/docs/mobly.controllers.android_device_lib.services.rst
new file mode 100644
index 0000000..602f9ab
--- /dev/null
+++ b/docs/mobly.controllers.android_device_lib.services.rst
@@ -0,0 +1,45 @@
+mobly.controllers.android_device_lib.services package
+=====================================================
+
+Submodules
+----------
+
+mobly.controllers.android_device_lib.services.base_service module
+-----------------------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.services.base_service
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.services.logcat module
+-----------------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.services.logcat
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.services.sl4a_service module
+-----------------------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.services.sl4a_service
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.android_device_lib.services.snippet_management_service module
+-------------------------------------------------------------------------------
+
+.. automodule:: mobly.controllers.android_device_lib.services.snippet_management_service
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+Module contents
+---------------
+
+.. automodule:: mobly.controllers.android_device_lib.services
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/docs/mobly.controllers.attenuator_lib.rst b/docs/mobly.controllers.attenuator_lib.rst
new file mode 100644
index 0000000..38cf837
--- /dev/null
+++ b/docs/mobly.controllers.attenuator_lib.rst
@@ -0,0 +1,30 @@
+mobly.controllers.attenuator_lib package
+========================================
+
+Submodules
+----------
+
+mobly.controllers.attenuator_lib.minicircuits module
+----------------------------------------------------
+
+.. automodule:: mobly.controllers.attenuator_lib.minicircuits
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.attenuator_lib.telnet_scpi_client module
+----------------------------------------------------------
+
+.. automodule:: mobly.controllers.attenuator_lib.telnet_scpi_client
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: mobly.controllers.attenuator_lib
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/docs/mobly.controllers.rst b/docs/mobly.controllers.rst
new file mode 100644
index 0000000..8871142
--- /dev/null
+++ b/docs/mobly.controllers.rst
@@ -0,0 +1,63 @@
+mobly.controllers package
+=========================
+
+Subpackages
+-----------
+
+.. toctree::
+
+    mobly.controllers.android_device_lib
+    mobly.controllers.attenuator_lib
+    mobly.controllers.sniffer_lib
+
+Submodules
+----------
+
+mobly.controllers.android_device module
+---------------------------------------
+
+.. automodule:: mobly.controllers.android_device
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.attenuator module
+-----------------------------------
+
+.. automodule:: mobly.controllers.attenuator
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.iperf_server module
+-------------------------------------
+
+.. automodule:: mobly.controllers.iperf_server
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.monsoon module
+--------------------------------
+
+.. automodule:: mobly.controllers.monsoon
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.sniffer module
+--------------------------------
+
+.. automodule:: mobly.controllers.sniffer
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: mobly.controllers
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/docs/mobly.controllers.sniffer_lib.local.rst b/docs/mobly.controllers.sniffer_lib.local.rst
new file mode 100644
index 0000000..0c15a30
--- /dev/null
+++ b/docs/mobly.controllers.sniffer_lib.local.rst
@@ -0,0 +1,38 @@
+mobly.controllers.sniffer_lib.local package
+===========================================
+
+Submodules
+----------
+
+mobly.controllers.sniffer_lib.local.local_base module
+-----------------------------------------------------
+
+.. automodule:: mobly.controllers.sniffer_lib.local.local_base
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.sniffer_lib.local.tcpdump module
+--------------------------------------------------
+
+.. automodule:: mobly.controllers.sniffer_lib.local.tcpdump
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controllers.sniffer_lib.local.tshark module
+-------------------------------------------------
+
+.. automodule:: mobly.controllers.sniffer_lib.local.tshark
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: mobly.controllers.sniffer_lib.local
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/docs/mobly.controllers.sniffer_lib.rst b/docs/mobly.controllers.sniffer_lib.rst
new file mode 100644
index 0000000..f728ce7
--- /dev/null
+++ b/docs/mobly.controllers.sniffer_lib.rst
@@ -0,0 +1,17 @@
+mobly.controllers.sniffer_lib package
+=====================================
+
+Subpackages
+-----------
+
+.. toctree::
+
+    mobly.controllers.sniffer_lib.local
+
+Module contents
+---------------
+
+.. automodule:: mobly.controllers.sniffer_lib
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/docs/mobly.rst b/docs/mobly.rst
new file mode 100644
index 0000000..d855a22
--- /dev/null
+++ b/docs/mobly.rst
@@ -0,0 +1,133 @@
+mobly package
+=============
+
+Subpackages
+-----------
+
+.. toctree::
+
+    mobly.controllers
+
+Submodules
+----------
+
+mobly.asserts module
+--------------------
+
+.. automodule:: mobly.asserts
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.base_instrumentation_test module
+--------------------------------------
+
+.. automodule:: mobly.base_instrumentation_test
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.base_test module
+----------------------
+
+.. automodule:: mobly.base_test
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.config_parser module
+--------------------------
+
+.. automodule:: mobly.config_parser
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.controller_manager module
+-------------------------------
+
+.. automodule:: mobly.controller_manager
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.expects module
+--------------------
+
+.. automodule:: mobly.expects
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.keys module
+-----------------
+
+.. automodule:: mobly.keys
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.logger module
+-------------------
+
+.. automodule:: mobly.logger
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.records module
+--------------------
+
+.. automodule:: mobly.records
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.runtime_test_info module
+------------------------------
+
+.. automodule:: mobly.runtime_test_info
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.signals module
+--------------------
+
+.. automodule:: mobly.signals
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.suite_runner module
+-------------------------
+
+.. automodule:: mobly.suite_runner
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.test_runner module
+------------------------
+
+.. automodule:: mobly.test_runner
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+mobly.utils module
+------------------
+
+.. automodule:: mobly.utils
+    :members:
+    :undoc-members:
+    :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: mobly
+    :members:
+    :undoc-members:
+    :show-inheritance:
diff --git a/docs/tutorial.md b/docs/tutorial.md
index 3d50e7d..5fd98c0 100644
--- a/docs/tutorial.md
+++ b/docs/tutorial.md
@@ -6,23 +6,22 @@
 
 ## Setup Requirements
 
-* A computer with at least 2 USB ports.
-* Mobly package and its system dependencies installed on the computer.
-* One or two Android devices with the
-  [Mobly Bundled Snippets](https://github.com/google/mobly-bundled-snippets)
-  (MBS) installed. We will
-  use MBS to trigger actions on the Android devices.
-* A working adb setup. To check, connect one Android device to the computer
-  and make sure it has "USB debugging" enabled. Make sure the device shows up
-  in the list printed by `adb devices`.
+*   A computer with at least 2 USB ports.
+*   Mobly package and its system dependencies installed on the computer.
+*   One or two Android devices with the [Mobly Bundled Snippets]
+    (https://github.com/google/mobly-bundled-snippets) (MBS) installed. We will
+    use MBS to trigger actions on the Android devices.
+*   A working adb setup. To check, connect one Android device to the computer
+    and make sure it has "USB debugging" enabled. Make sure the device shows up
+    in the list printed by `adb devices`.
 
 ## Example 1: Hello World!
-
+ 
 Let's start with the simple example of posting "Hello World" on the Android
 device's screen. Create the following files:
-
+ 
 **sample_config.yml**
-
+ 
 ```yaml
 TestBeds:
   # A test bed where adb will find Android devices.
@@ -30,33 +29,32 @@
     Controllers:
         AndroidDevice: '*'
 ```
-
+ 
 **hello_world_test.py**
-
+ 
 ```python
 from mobly import base_test
 from mobly import test_runner
 from mobly.controllers import android_device
-
-
+ 
 class HelloWorldTest(base_test.BaseTestClass):
+ 
   def setup_class(self):
     # Registering android_device controller module declares the test's
-    # dependency on Android device hardware. By default, we expect at
-    # least one object is created from this.
+    # dependency on Android device hardware. By default, we expect at least one
+    # object is created from this.
     self.ads = self.register_controller(android_device)
     self.dut = self.ads[0]
     # Start Mobly Bundled Snippets (MBS).
     self.dut.load_snippet('mbs', 'com.google.android.mobly.snippet.bundled')
-
+ 
   def test_hello(self):
     self.dut.mbs.makeToast('Hello World!')
-
-
+ 
 if __name__ == '__main__':
-    test_runner.main()
+  test_runner.main()
 ```
-
+ 
 To execute:
 
 ```
@@ -67,10 +65,9 @@
 
 A "Hello World!" toast notification appears on your device's screen.
  
-Within SampleTestBed's `Controllers` section, we used `AndroidDevice: '*'`
-to tell the test runner to automatically find all connected Android devices.
-You can also specify particular devices by serial number and attach extra
-attributes to the object:
+Within SampleTestBed's `Controllers` section, we used `AndroidDevice: '*'` to tell
+the test runner to automatically find all connected Android devices. You can also
+specify particular devices by serial number and attach extra attributes to the object:
  
 ```yaml
 AndroidDevice:
@@ -91,20 +88,20 @@
 from mobly import base_test
 from mobly import test_runner
 from mobly.controllers import android_device
-
+ 
 class HelloWorldTest(base_test.BaseTestClass):
-
+ 
   def setup_class(self):
     self.ads = self.register_controller(android_device)
     self.dut = self.ads[0]
     self.dut.load_snippet('mbs', 'com.google.android.mobly.snippet.bundled')
-
+ 
   def test_hello(self):
     self.dut.mbs.makeToast('Hello World!')
-
+ 
   def test_bye(self):
     self.dut.mbs.makeToast('Goodbye!')
-
+ 
 if __name__ == '__main__':
   test_runner.main()
 ```
@@ -136,8 +133,7 @@
 You could specify user parameters to be passed into your test class in the
 config file.
  
-In the following config, we added a parameter `favorite_food` to be used in
-the test case.
+In the following config, we added a parameter `favorite_food` to be used in the test case.
  
 **sample_config.yml**
  
@@ -207,8 +203,7 @@
  
 In this example, we use one Android device to discover another Android device
 via bluetooth. This test demonstrates several essential elements in test
-writing, like asserts, device debug tag, and general logging vs logging with
-device tag.
+writing, like asserts, device debug tag, and general logging vs logging with device tag.
  
 **sample_config.yml**
  
@@ -298,27 +293,27 @@
 There's potentially a lot more we could do in this test, e.g. check
 the hardware address, see whether we can pair devices, transfer files, etc.
 
-To learn more about the features included in MBS, go to
-[MBS repo](https://github.com/google/mobly-bundled-snippets) to see how to
-check its help menu.
+To learn more about the features included in MBS, go to [MBS repo]
+(https://github.com/google/mobly-bundled-snippets) to see how to check its help
+menu.
 
-To learn more about Mobly Snippet Lib, including features like Espresso
-support and asynchronous calls, see the
-[snippet lib examples](https://github.com/google/mobly-snippet-lib/tree/master/examples).
+To learn more about Mobly Snippet Lib, including features like Espresso support
+and asynchronous calls, see the [snippet lib examples]
+(https://github.com/google/mobly-snippet-lib/tree/master/examples).
 
 
 ## Example 6: Generated Tests
 
 A common use case in writing tests is to execute the same test logic multiple
-times, each time with a different set of parameters. Instead of duplicating
-the same test case with minor tweaks, you could use the **Generated tests**
-in Mobly.
+times, each time with a different set of parameters. Instead of duplicating the
+same test case with minor tweaks, you could use the **Generated tests** in
+Mobly.
 
 Mobly could generate test cases for you based on a list of parameters and a
 function that contains the test logic. Each generated test case is equivalent
 to an actual test case written in the class in terms of execution, procedure
-functions (`setup`, `teardown`, `on_fail`), and result collection. You could
-also select generated test cases via the `--test_case` cli arg as well.
+functions (setup/teardown/on_fail), and result collection. You could also
+select generated test cases via the `--test_case` cli arg as well.
 
 
 Here's an example of generated tests in action. We will reuse the "Example 1:
@@ -328,6 +323,7 @@
 You could reuse the config file from Example 1.
 
 The test class would look like:
+
  
 **many_greetings_test.py**
  
