added snapshot support