Adding more unit tests.
Made some classes abstract which should have been.
10 files changed