refactored fetch