A complete overhaul of the codebase. Most features from the old codebase have been reimplemented in some sort of way in the new code base. The new code base has been tested and verified using JUNIT automated testing. The new code base also implements more OOP-based concepts and principles.