adding server/client stuff
merge upstream
merge