only do a full scan once