fetch logic more robust