Mcjit

Most of the refactoring needed to start using MCJIT