Snapshot object creation moved to framework

- deserializeSnapshot only needs to return state