wip: add initial client/server support