diff --git a/README.md b/README.md
index b94589f..6fa8291 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Building PDFium
+# PDFium
 
 ## Prerequisites
 
@@ -8,10 +8,6 @@
 
 Also install Python, Subversion, and Git and make sure they're in your path.
 
-Optionally, you may want to install the [Ninja](http://martine.github.io/ninja/)
-build system (recommended) rather than using your platform-specific build
-system.
-
 ## Get the code
 
 ```
@@ -23,17 +19,17 @@
 
 ## Generate the build files
 
-Now we use the GYP library to generate the build files.
+We use the GYP library to generate the build files.
 
 At this point, you have two options. The first option is to use the [Ninja]
-(http://martine.github.io/ninja/) build system. This is the default as of
-mid-September, 2015. Previously, the second option was the default. Most PDFium
-developers use Ninja, as does our [continuous build system]
+(http://martine.github.io/ninja/) build system (also included with the
+depot\_tools checkout). This is the default as of mid-September, 2015.
+Previously, the second option (platform-specific build files) was the default.
+Most PDFium developers use Ninja, as does our [continuous build system]
 (http://build.chromium.org/p/client.pdfium/).
 
-On Windows: `build\gyp_pdfium
-` For all other platforms: `build/gyp_pdfium
-`
+ * On Windows: `build\gyp\_pdfium`
+ * For all other platforms: `build/gyp\_pdfium`
 
 The second option is to generate platform-specific build files, i.e. Makefiles
 on Linux, sln files on Windows, and xcodeproj files on Mac. To do so, set the
@@ -43,32 +39,52 @@
 ## Building the code
 
 If you used Ninja, you can build the sample program by: `ninja -C out/Debug
-pdfium_test
-` You can build the entire product (which includes a few unit tests) by: `ninja
--C out/Debug
-`
+pdfium\_test` You can build the entire product (which includes a few unit
+tests) by: `ninja -C out/Debug`.
 
 If you're not using Ninja, then building is platform-specific.
 
-On Linux: `make pdfium_test
-`
-
-On Mac, open build/all.xcodeproj
-
-On Windows, open build\all.sln
+ * On Linux: `make pdfium\_test`
+ * On Mac: `open build/all.xcodeproj`
+ * On Windows: open build\all.sln
 
 ## Running the sample program
 
 The pdfium\_test program supports reading, parsing, and rasterizing the pages of
 a .pdf file to .ppm or .png output image files (windows supports two other
-formats). For example: `out/Debug/pdfium_test --ppm path/to/myfile.pdf
-`
+formats). For example: `out/Debug/pdfium\_test --ppm path/to/myfile.pdf`. Note
+that this will write output images to `path/to/myfile.pdf.<n>.ppm`.
+
+## Testing
+
+There are currently several test suites that can be run:
+
+ * pdfium\_unittests
+ * pdfium\_embeddertests
+ * testing/tools/run\_corpus\_tests.py
+ * testing/tools/run\_javascript\_tests.py
+ * testing/tools/run\_pixel\_tests.py
+
+It is possible the tests in the `testing` directory can fail due to font
+differences on the various platforms. These tests are reliable on the bots. If
+you see failures, it can be a good idea to run the tests on the tip-of-tree
+checkout to see if the same failures appear.
 
 ## Waterfall
 
 The current health of the source tree can be found at
 http://build.chromium.org/p/client.pdfium/console
 
+## Community
+
+There are several mailing lists that are setup:
+
+ * [PDFium](https://groups.google.com/forum/#!forum/pdfium)
+ * [PDFium Reviews](https://groups.google.com/forum/#!forum/pdfium-reviews)
+ * [PDFium Bugs](https://groups.google.com/forum/#!forum/pdfium-bugs)
+
+Note, the Reviews and Bugs lists are typically read-only.
+
 ## Bugs
 
  We will be using this
