Add initial client implementation