move opcode stuff to opcode.c