Add (failing) high level tests
Implement snapshot/revert

All the tests (including the high-level ones) pass again.