working on llvm interface functions