refactoring with James