Author: D.M. lang and D.R. dudley