add demo
add some documentation