Changed back to a switch in order to support multi byte opcodes