Bring a large pot of salted water to a vigorous boil.
Add 8 oz of elbow macaroni and cook according to the package instructions until al dente, usually around 7-9 minutes.
Drain and set aside while you prepare the sauce.
In a medium saucepan, melt 2 tbsp of unsalted butter over medium heat.
Stir in 2 tbsp of all-purpose flour and cook for about 1 minute, whisking constantly until the mixture is bubbly and golden.
Gradually whisk in 2 cups of whole or 2% milk, continuing to whisk for about 3-5 minutes until the mixture thickens and starts to bubble gently.
Remove from heat and stir in 2 cups of shredded cheddar cheese and 1 cup of grated parmesan cheese until melted and smooth.
Season with 1 tsp salt, 1/2 tsp black pepper, and if you like a bit of kick, add 1/2 tsp paprika.
Add the cooked macaroni to the cheese sauce, stirring until every noodle is coated in that cheesy goodness.
Pour this mixture into a baking dish.
If desired, top with additional cheese or breadcrumbs for an extra crispy layer on top.
Preheat your oven to 350°F (175°C).
Bake for 15-20 minutes until bubbly and golden on top.