Refactor and design snapshot saving interface