Overhauled the abstract model and the test for it.