simplify class hierarchy
extract webdav client interface
better output stream handle