Add initial implementation of snapshots for reading
Add TODOs