This seems too cumbersome to me. Why we need to check that fetching is enabled, what are other scenarios? At the end this function is intended to FETCH data.