Sam Revitch <samr7@cs.washington.edu>
   All code except otherwise noted.
