llvm codegen mostly works, expressions etc etc etc