Working on optimization.  Functionally promising (much faster), but not working yet.