cleaner and simpler