anddis partially rewritten for clarity
fb826ec Aug 18, 2017
partially rewritten for clarity
fb826ec