Shred Gruyere, cheddar, and Parmesan cheese; set aside.
4 cups Sharp cheddar cheese, 2 cups Gruyere Cheese, 1/2 cup Parmesan cheese
Cook macaroni according to package directions, minus one minute under al dente. Drain when finished, adding olive oil to the pasta to prevent sticking. Set aside.
16 oz elbow macaroni, 1 tbsp extra virgin olive oil
Preheat oven to 350°F/175⁰C.
Melt butter in large skillet over medium heat. Add flour, whisking for one full minute until beginning to bubble, and slightly golden in color.
6 tbsp unsalted butter, 1/3 cup all-purpose flour
Slowly pour in the milk and heavy cream, whisking to fully incorporate. Once mixture is bubbling and thick, continue to whisk and cook an additional 2 minutes, adding salt and pepper to taste.
3 cups whole milk, 1 cup heavy whipping cream, kosher salt and pepper, to taste
Add four cups of the Gruyere and cheddar cheese to the mixture one cup at a time, whisking between each addition to combine.
4 cups Sharp cheddar cheese, 2 cups Gruyere Cheese
Add the pasta to the cheese sauce, gently stirring until pasta is fully incorporated with the cheese.
16 oz elbow macaroni
Transfer half of the macaroni and cheese to a 9 x 13 baker, followed by the remaining shredded Gruyere and cheddar cheeses. Top with the remainder of the pasta.