Author: David N. Smith (computer programmer)