implementing more opcodes