refactoring, etc