David A. Bagley <bagleyd AT verizon.net>

Thanks to :
Sarat Chandran <saratcmahadevan AT yahoo.com> - collaboration on a few ideas
Rene Jansen <RENE.R.J.JANSEN AT RCC.nl> - auto solve
