making internal2external available outside the module
moving opcode annotation to member functions