refactoring, design