Author: Palmer, E. Laurence; revised by Fowler, H. Seymour