working on llvm wrapper function