Client implementation.