lots of improvements
add demo page