re-factor to fix failing tests.  Instead of marking as retrieved, track whether the item has fields.  If not, we need to retrieve it