just broken it to simplify creating new decls, so i can fix local issues. also need to fix llvm using libcalls