added a shit-load of things for opcode handling