Made compat easier to extend, and added more tests to it.