Major cleanup.  Too many additions and changes to list.