Bunch of progress. Loads of refactoring and llvm refinement code.