Author: M. Hazewinkel