trying to avoid a tight read loop.