try to keep reader long lived