right read is optional