seems more stable not to inherit from LLVMContext