client is optional
add usage