add API client
add tests