add SnapshotData.java and SnaphotWriter.java (have to be tested)