additions and corrections by Richard