more details in infra/README.md
diff --git a/infra/README.md b/infra/README.md
index 18f7c67..16fc60b 100644
--- a/infra/README.md
+++ b/infra/README.md
@@ -16,6 +16,28 @@
 which we run on that master.  Both of these technologies are highly specific to
 Google's Chromium project. We're just borrowing some of their infrastructure.
 
+## Prerequisites
+
+- [install depot_tools](http://www.chromium.org/developers/how-tos/install-depot-tools)
+- Python package installer: `sudo apt-get install python-pip`
+- Python coverage package (only needed for `training_simulation`): `sudo pip install coverage`
+
+## Getting the code
+
+The following will get way more than just recipe code, but it _will_ get the recipe code:
+
+```bash
+mkdir chrome_infra
+cd chrome_infra
+fetch infra
+```
+
+More detailed instructions can be found [here](https://chromium.googlesource.com/infra/infra/+/master/doc/source.md).
+
+Most of the functionality for recipes comes from `recipe_modules`, which are
+unfortunately spread to many separate repositories.  After checking out the code
+search for files named `api.py` or `example.py` under `infra/build`.
+
 ## Editing a recipe
 
 Flutter has one recipe per repository. Currently
@@ -23,32 +45,25 @@
 and
 [flutter/engine](https://chromium.googlesource.com/chromium/tools/build.git/+/master/scripts/slave/recipes/flutter/engine.py).
 
-Recipes are just python.  They are
+Recipes are just Python.  They are
 [documented](https://github.com/luci/recipes-py/blob/master/doc/user_guide.md)
 by the [luci/recipes-py github project](https://github.com/luci/recipes-py).
 
-The typical cyle for editing a recipe is:
+The typical cycle for editing a recipe is:
 
 1. Make your edits.
 2. Run `build/scripts/slave/recipes.py simulation_test train flutter` to update expected files  (remove the flutter if you need to do a global update).
 3. Run `build/scripts/slave/recipes.py run flutter/flutter` (or flutter/engine) if something was strange during training and you need to run it locally.
 4. Upload the patch (`git commit`, `git cl upload`) and send it to someone in the `recipes/flutter/OWNERS` file for review.
 
-Most of the functionality for recipes comes from recipe_modules, which are
-unfortunately spread to many separate repositories.  The easiest way to find
-documentation on how to use modules is to [get a full checkout of chromium's
-`infra`
-repositories](https://chromium.googlesource.com/infra/infra/+/master/doc/source.md)
-and search for files named `api.py` or `example.py` under `infra/build`.
-
 ## Editing the client.flutter buildbot master
 
 Flutter uses Chromium's fancy
 [builders.pyl](https://chromium.googlesource.com/infra/infra/+/master/doc/users/services/buildbot/builders.pyl.md)
 master generation system.  Chromium hosts 100s (if not 1000s) of buildbot
 masters and thus has lots of infrastructure for turning them up and down.
-Eventually all of buildbot is planned to be replaced by other infrastruture, but
-for now flutter has its own client.flutter master.
+Eventually all of buildbot is planned to be replaced by other infrastructure,
+but for now flutter has its own client.flutter master.
 
 You would need to edit client.flutter's master in order to add slaves (talk to
 @eseidelGoogle), add builder groups, or to change the html layout of
@@ -62,5 +77,5 @@
 [build](https://chromium.googlesource.com/chromium/tools/build.git/+/master/scripts/slave/recipes/flutter).
 Support for [cross-repository
 recipes](https://github.com/luci/recipes-py/blob/master/doc/cross_repo.md) is
-in-progress.  If you view the git log of this directory, you'll see we intially
+in-progress.  If you view the git log of this directory, you'll see we initially
 tried, but it's not quite ready.