Refactoring snapshot classes