wow, very opcodes, much boilerplate