More test cases
Refactor VM into struct