some documentation and example code