cleaner, but still not 100% coverage