add WM abstraction and some tests
some README updates
Merge branch 'jc/server_api'