more refactoring.  Close