Lots of cleanups and improvements. It uses interfaces in the code, and has more logical and clear supporting code. Some complexity was removed in many parts, including critical parts. No big performance improvements, but a worthwhile update. Also uses LINQ for simplicity in some non-critical code.