use binary safe read