update dfs some
add unit tests, add simple client code