refactoring is good -- finally