Start of vm

another refactor. instructions are separate class again.