move direct instructions to a heap allocation

more prep for variable sized opcodes