Cleaned up Snapshot, reorganized code; no functionnal changes.