Implement snapshot