first pass at full implementation of retrieve api.  Issues with how to present paging have arisen, and have been written into the technical spec, to be implemented next