first attempt at client library