first version
add demo program
cleanup / add to test / add documentation