Finished solution

got the solution working and starting point ready.  Time to try it out
and look for bugs.