Add some additional tests for all and classic classes.
Remove the old mapping code; this now works through predicates.
Fix the caching logic and write some tests for it.