revision 2

full re-read and edit