add runnable tests
add some docs