working on the compiler side of things now, we'll be using llvm