Lint classes better (much better) --- Fixes gh-1940

So, so much better!
yep --- added a test case for this and a way to skip it. it's possible there are still ways to make this an infinite loop, though.