radical change in code; see notes @pt 177-195