reworked to have one function for each llvm instruction
reworked to start having only one function per LLVM instruction