added a function and new opcode