diff --git a/README.md b/README.md
index a42d5f8375a7a17f7b96a0e3aaa9d7f7baf6c7e1..05af97a64f5dbb1d98c8a4bbf6c921c094e3e5a4 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ Key differences:
 * Everything is built using cmake, allowing for one Visual studio project to 
   build PyCommandCenter together with all its dependencies
 
-# Code example for making a bot:
+# Code example for making a bot
 
 ``` python
 from library import *
diff --git a/docs/playerconstants.rst b/docs/constants.rst
similarity index 53%
rename from docs/playerconstants.rst
rename to docs/constants.rst
index 20f5d8308cc997b16a81b1e41d445aea6057ca14..d02278e14ff31fc4a27c4e256f58b478036750c1 100644
--- a/docs/playerconstants.rst
+++ b/docs/constants.rst
@@ -1,5 +1,12 @@
+Constants
+=========
+
+See also UNIT_TYPEID, UPGRADE_ID and ABILITY_ID for more constants.
+
+.. _playerconstants:
+
 Player constants
-================
+----------------
 
 The following constants are used when referring to a player:
 
@@ -10,3 +17,18 @@ The following constants are used when referring to a player:
 
 These are internally represented as integers, but these constants should be 
 used instead to avoid confusion.
+
+Difficulty
+----------
+
+.. autoclass:: library.Difficulty
+   :members:
+   :undoc-members:
+
+Race
+----
+
+.. autoclass:: library.Race
+   :members:
+   :undoc-members:
+
diff --git a/docs/idabot.rst b/docs/idabot.rst
new file mode 100644
index 0000000000000000000000000000000000000000..7ed0a0fb1b303a799d47a7370cc5eec910523930
--- /dev/null
+++ b/docs/idabot.rst
@@ -0,0 +1,52 @@
+IDABot
+======
+
+.. class:: library.IDABot
+
+   This is the basis of your bot. It contains all available managers and some
+   methods to get you started.
+
+   See :doc:`this page <quickstart>` for how to properly
+   inherit from IDABot.
+
+   Instances of managers:
+
+   .. attribute:: IDABot.base_location_manager
+
+      An instance of the class :class:`library.BaseLocationManager`
+
+   .. attribute:: IDABot.tech_tree
+
+      An instance of the class :class:`library.TechTree`
+
+   .. attribute:: IDABot.map_tools
+
+      An instance of the class :class:`library.MapTools`
+
+   .. attribute:: IDABot.building_placer
+
+      An instance of the class :class:`library.BuildingPlacer`
+
+   Methods:
+
+   .. method:: IDABot.get_all_units(self) -> List[library.Unit]
+
+      Retrieves a list of all visible units
+
+   .. method:: IDABot.get_my_units(self) -> List[library.Unit]
+
+      Retrieves a list of all your visible units
+
+   .. method:: IDABot.get_player_race(self) -> library.Race
+
+      Returns the players race, useful if you play Race.Random
+
+   Attributes:
+
+   .. autoattribute:: minerals
+
+   .. autoattribute:: gas
+
+   .. autoattribute:: current_supply
+
+   .. autoattribute:: max_supply
diff --git a/docs/index.rst b/docs/index.rst
index d00a0c0454aa0f2292153a2010b4c9c7a5134a98..cdae52c67eec87862ea05420eb46f18231a37f18 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,17 +1,20 @@
 Welcome to PyCommandCenter's documentation!
 ===========================================
 
-This is a Python module for implementing bots for Starcraft II.
+This is a Python library based on the CommandCenter bot for implementing bots for Starcraft II.
+
+.. TODO: IDABot in toctree
 
 .. toctree::
    :maxdepth: 2
    :caption: Contents:
 
    quickstart
-   types
-   unit
    managers
-   playerconstants
+   idabot
+   unit
+   types
+   constants
    
 Short overview
 ==============
@@ -20,22 +23,9 @@ Short overview
    :toctree: _autosummary
 
    library
-   library.ABILITY_ID 	
-   library.BUFF_ID 	
-   library.BaseLocation 	
-   library.Color 	
    library.Coordinator 	
-   library.Difficulty 	
-   library.IDABot 	
-   library.PlayerSetup 	
    library.Point2D 	
    library.Point2DI 	
-   library.Race 	
-   library.TechTree 	
-   library.TypeData 	
-   library.UNIT_TYPEID 	
-   library.UPGRADE_ID 	
-   library.Unit 	
 
 Indices and tables
 ==================
diff --git a/docs/managers.rst b/docs/managers.rst
index 73f58c5150e294e7b7ebecf25da458514da30cb8..8e34aa85c4aca886d9bc6db2cbbcd1f2956b4222 100644
--- a/docs/managers.rst
+++ b/docs/managers.rst
@@ -1,10 +1,13 @@
 Managers
 ========
 
-The original CommandCenter bot uses managers to do everything, having managers 
-manage workers, building, controlling military etc. In this API we have removed 
-all the control related managers and only kept the managers related to helping 
-process input information, leaving the decision-making to the user of the API.
+The original `CommandCenter`_ bot uses managers to do everything, having 
+managers manage workers, building, controlling military etc. In this API we 
+have removed all the control related managers and only kept the managers 
+related to helping process input information, leaving the decision-making to 
+the user of the API.
+
+.. _CommandCenter: https://github.com/davechurchill/commandcenter 
 
 Here is a full list of all managers:
 
@@ -13,9 +16,7 @@ Here is a full list of all managers:
 * :class:`library.MapTools`
 * :class:`library.BuildingPlacer`
 
-The rest of this page contains the descriptions of each manager.
-
-.. TODO: How should we access the managers? Should we let the students create them themselves or should we give it to them via inhertiance
+The rest of this page contains a brief description of each manager.
 
 BaseLocationManager
 -------------------
@@ -80,6 +81,13 @@ MapTools
 .. autoclass:: library.MapTools
    :members:
 
+.. autoclass:: library.Color 	
+   :members:
+   :undoc-members:
+
+.. TODO: Only include the constructor and the color constants
+
+
 BuildingPlacer
 --------------
 
diff --git a/docs/quickstart.rst b/docs/quickstart.rst
index b708405ca3fb46217665aba8d7ccdf2ec35d09bb..ff385355c7e5fa704e2a0ccafdffb924a9d1968e 100644
--- a/docs/quickstart.rst
+++ b/docs/quickstart.rst
@@ -48,6 +48,7 @@ Now, let us break it down piece by piece to understand it.
    from library import *
 
 .. TODO: Should we really encourage this behaviour?
+
 This imports everything from the library into your namespace. 
 
 Next, we need to define our bot.
diff --git a/docs/types.rst b/docs/types.rst
index 834d8b955472eb23d7b269dd682e9e8e73d8a564..478ead3de9e722ea69ae7acda421a4fb4bce3d7a 100644
--- a/docs/types.rst
+++ b/docs/types.rst
@@ -18,3 +18,25 @@ As explained above, this class is a wrapper around the class
 .. autoclass:: library.UnitType
    :members:
    :undoc-members:
+
+UNIT_TYPEID
+-----------
+
+.. autoclass:: library.UNIT_TYPEID
+   :members:
+   :undoc-members:
+
+
+ABILITY_ID
+----------
+
+.. autoclass:: library.ABILITY_ID 	
+   :members:
+   :undoc-members:
+
+UPGRADE_ID
+----------
+
+.. autoclass:: library.UPGRADE_ID 	
+   :members:
+   :undoc-members:
diff --git a/docs/unit.rst b/docs/unit.rst
index fe37a6d5632aaaef90032e43c4ef166ad39e9ef5..0ffe399fcf92010886bd9cee518b1e3885fab581 100644
--- a/docs/unit.rst
+++ b/docs/unit.rst
@@ -37,11 +37,8 @@ Unit
    .. autoattribute:: is_valid 
    .. attribute:: Unit.player 
 
-      .. TODO: Add page about PLAYER_* constants
-
       Returns the constant corresponding to player which this unit belongs to.
-      See the page :doc:`playerconstants` for more information on player
-      constants.
+      See :ref:`playerconstants` for more information.
 
    .. autoattribute:: position 
    .. autoattribute:: shields