Refactored read