spike nearly done but nervous about amount of work on my ws. Will
followup on changes in next commit once code is better organised and
doc'ed.