data fetching in block instead of delegate