data reader with side effects. good idea?