cleaner, refactored