[3stage] moved fetch to a new "frontend" module.