implementing thin (eventually caching) client layer