WIP - client almost done