Seperate snapshot core functionality