rough rough refactoring