clean up the handling of fillable blocks, only return hasWork if there
are actually fillable blocks, not just blocks that need items (cache
those separately)