squash most code in readers/__init__, move to snapshot.py