In a pot, start to boil water for pasta. Once boiling, add pasta and cook the past to al dente - about 1-2 minutes less than according to the package.
In a sauté pan, add extra virgin olive oil, onions, garlic and pepper. Cook until soft and golden brown - about 5 minutes.
Once cooked, gradually add in flour until thick paste starts to form. Gradually add milk, stirring constantly until the cheese mixture is thick and creamy.
Add both cheeses and stir.
Toss the cooked pasta with the cheese sauce. Pour into a greased 8x8 baking dish.
In a separate bowl, mix breadcrumbs, butter, cheese and spices. Top the pasta with the breadcrumb mixture.
Bake in the oven uncovered for 15-20 minutes until bread crumbs are golden brown.