update
define branches as collection of snapshots