Broke out client seperately from client library