WIP - initial client implementation