back to one thread - the best performance so far