sophia: refactor snapshot object; make cumulative vlsn function