more refactoring.  code doesn't break but program doesn't work either, oops
more refactoring - switched tools to be encapsulated in their own class...almost done with it.  getting off train now.