refactored ProductFetcher a bit