refactored omp