Cook macaroni in a large pot of boiling water for 8 minutes. Drain and set aside.
In a large saucepan, melt butter and olive oil over medium heat.
Sautée onions until translucent.
Stir in flour, mix well and cook for 2 minutes to make a roux.
Slowly add milk to roux, stirring constantly.
Stir in cheese and cook over low heat until cheese is melted and the sauce is smooth and thick.
Add macaroni to the cheese sauce and stir well.
You can either serve it now or place the mixture in large casserole dish, sprinkle with panko breadcrumbs and bake at 350°F for 15 minutes.