almost forgot withSnapshot