Basic interfaces and client.