make read more robust to different consumers