added specs
moved useful classes out from inside Vm
start of new refactored opcode execution