implement work splitting in resolver