shift io.Reader init earlier
handle more errors in Set()