Improved GUI version.  (Still very much a work in progress.)