str not repr
optimization (2x speedup)
closer to implementation of snapshotting
get snapshotting working on the tests :D mostly requires actually deep copying the snapshots, and changing what assumptions should be true in the tests