add comments and more example