refactoring, limited testing