read mode is necessary, duh