factor out make_vcs and backup_source
add snapshots
add checkout command