added openMP