updated with snippets