removed pre-processing threading because it was slower