refactor Opcode