GH-8: Done a lot more refactoring.