Author: Kenison, Ervin and McKinney, James and revised by Tom C. Plumridge