snippets fully working
no supporting functions yet