Major, and I mean it, MAJOR update. Everything (almost) rewritten and refactored.