initial commit and make_snapshot implemented