Contributions from Tom Johnson, David Schach, and Mike Leach