Been away for a while - new commit
Part 1 of a massive refactor