start of a working prototype.  Very rough and needs a lot more.