Redesign LLVMContext behaviour