refactored reads