try to optimize poolAndRun