ugly mess, just snapshotting