documented and commented. decommented pragma omp where needed