copyright 1997-2005, 2006,  2007,  2008, 2009  Johnson CN