a few changes, and show how to use