We should cache first line and row width on initialization, rewinding on a whim is not expected and leads to inconsistent behaviour.