diff --git a/docs/source/building.rst b/docs/source/building.rst
index 77a81c0..9ae6c89 100644
--- a/docs/source/building.rst
+++ b/docs/source/building.rst
@@ -50,10 +50,10 @@
 
 7. `BLAS <http://www.netlib.org/blas/>`_ and `LAPACK
 <http://www.netlib.org/lapack/>`_ routines are needed by
-SuiteSparse. We recommend either `GotoBlas2
-<http://www.tacc.utexas.edu/tacc- projects/gotoblas2>`_ or `ATLAS
-<http://math- atlas.sourceforge.net/>`_ , both of which ship with BLAS
-and LAPACK routines.
+SuiteSparse. We recommend either `OpenBLAS
+<http://xianyi.github.io/OpenBLAS/>`_ or `ATLAS <http://math-
+atlas.sourceforge.net/>`_, both of which ship with BLAS and LAPACK
+routines.
 
 8. `protobuf <http://code.google.com/p/protobuf/>`_ is used for
 serializing and deserializing linear least squares problems to
@@ -83,6 +83,8 @@
      ./configure --with-gflags=/usr/local/
      make
      sudo make install
+     # BLAS & LAPACK
+     sudo apt-get install libopenblas-dev
      # Eigen3
      sudo apt-get install libeigen3-dev
      # SuiteSparse and CXSparse
@@ -95,10 +97,10 @@
 
 .. code-block:: bash
 
- tar zxf ceres-solver-1.5.0.tar.gz
+ tar zxf ceres-solver-1.6.0.tar.gz
  mkdir ceres-bin
  cd ceres-bin
- cmake ../ceres-solver-1.5.0
+ cmake ../ceres-solver-1.6.0
  make -j3
  make test
 
@@ -109,7 +111,7 @@
 .. code-block:: bash
 
  bin/simple_bundle_adjuster \
-   ../ceres-solver-1.5.0/data/problem-16-22106-pre.txt \
+   ../ceres-solver-1.6.0/data/problem-16-22106-pre.txt \
 
 This runs Ceres for a maximum of 10 iterations using the
 ``DENSE_SCHUR`` linear solver. The output should look something like
@@ -171,7 +173,10 @@
 
 On OS X, we recommend using the `homebrew
 <http://mxcl.github.com/homebrew/>`_ package manager. Start by
-installing all the dependencies.
+installing all the dependencies. OS X ships with well optimized BLAS
+and LAPACK routines as part of the `vecLib
+<https://developer.apple.com/library/mac/#documentation/Performance/Conceptual/vecLib/Reference/reference.html>`_
+framework.
 
 .. code-block:: bash
 
@@ -179,7 +184,7 @@
       brew install cmake
       # google-glog and gflags
       brew install glog
-      # Eigen2
+      # Eigen3
       brew install eigen
       # SuiteSparse and CXSparse
       brew install suite-sparse
@@ -191,10 +196,10 @@
 
 .. code-block:: bash
 
-   tar zxf ceres-solver-1.5.0.tar.gz
+   tar zxf ceres-solver-1.6.0.tar.gz
    mkdir ceres-bin
    cd ceres-bin
-   cmake ../ceres-solver-1.5.0
+   cmake ../ceres-solver-1.6.0
    make -j3
    make test
 
diff --git a/docs/source/citation.rst b/docs/source/citation.rst
new file mode 100644
index 0000000..ad73577
--- /dev/null
+++ b/docs/source/citation.rst
@@ -0,0 +1,12 @@
+========
+Citation
+========
+
+If you use Ceres Solver for an academic publication, please cite this
+manual. e.g., ::
+
+  @manual{ceres-manual,
+          Author = {Sameer Agarwal and Keir Mierle},
+          Title = {Ceres Solver: Tutorial \& Reference},
+          Organization = {Google Inc.}
+  }
diff --git a/docs/source/conf.py b/docs/source/conf.py
index e114301..99301ed 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '1.5'
+version = '1.6'
 # The full version, including alpha/beta/rc tags.
-release = '1.5.0'
+release = '1.6.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/docs/source/contributing.rst b/docs/source/contributing.rst
index 090bddc..50f2b2a 100644
--- a/docs/source/contributing.rst
+++ b/docs/source/contributing.rst
@@ -18,10 +18,9 @@
 
 We follow Google's `C++ Style Guide
 <http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml>`_ and
-use `git
-<http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml>`_ for
-version control. We use the Gerrit code review system to collaborate
-and review changes to Ceres. Gerrit enables pre-commit reviews so that
+use `git <http://git-scm.com/>`_ for version control. We use the
+`Gerrit <https://ceres-solver.googlesource.com/>`_ to collaborate and
+review changes to Ceres. Gerrit enables pre-commit reviews so that
 Ceres can maintain a linear history with clean, reviewed commits, and
 no merges.
 
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 9d73cca..f272bb1 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -1,4 +1,4 @@
-.. Ceres Solver documentation master file, created by
+.. Ceres Solver documentation master file, crea`%ted by
    sphinx-quickstart on Sat Jan 19 00:07:33 2013.
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
@@ -11,7 +11,7 @@
 squares problems.
 
 * Download the latest stable `release
-  <https://ceres-solver.googlecode.com/files/ceres-solver-1.5.0.tar.gz>`_
+  <https://ceres-solver.googlecode.com/files/ceres-solver-1.6.0.tar.gz>`_
   or clone the `repository
   <https://ceres-solver.googlesource.com/ceres-solver>`_
 
@@ -19,8 +19,9 @@
 
 * Browse the :ref:`chapter-modeling` and :ref:`chapter-solving`
 
-* Ask questions and join the discussion on the `mailing list
-  <https://groups.google.com/forum/?fromgroups#!forum/ceres-solver>`_.
+* Join the `mailing list
+  <https://groups.google.com/forum/?fromgroups#!forum/ceres-solver>`_
+  and ask questions.
 
 * File bugs, feature requests in the `issue tracker
   <https://code.google.com/p/ceres-solver/issues/list>`_.
@@ -41,3 +42,4 @@
    version_history
    bibliography
    license
+   citation
diff --git a/docs/source/license.rst b/docs/source/license.rst
index 9e99cc7..58d70df 100644
--- a/docs/source/license.rst
+++ b/docs/source/license.rst
@@ -28,15 +28,3 @@
 liability, whether in contract, strict liability, or tort (including negligence
 or otherwise) arising in any way out of the use of this software, even if
 advised of the possibility of such damage.
-
-Citation
-========
-
-If you use Ceres Solver for an academic publication, please cite this
-manual. e.g., ::
-
-  @manual{ceres-manual,
-          Author = {Sameer Agarwal and Keir Mierle},
-          Title = {Ceres Solver: Tutorial \& Reference},
-          Organization = {Google Inc.}
-  }
