New compiler interface

@TheBizzle this is ready for review!