refactor recurring fetch