Author: Gerhard Dohrn-van Rossum