add some comments and usage examples