1. Pre-heat the oven to 350 degrees
2. In a large pot, add salted water and bring to a boil. Add macaroni to the pot. Cook until firm, about 12 minutes. Remove from heat and drain excess water. Set aside.
3. Dice and saute onions and peppers on a medium low heat
4. Add butter to the pot on medium high heat and allow it to melt
5. Whisk in flour while stirring vigorously. When mixture starts to bubble and thin, reduce to heat to low and cook for 2 minutes.
6. Add milk gradually while consistently stirring vigorously. Slowly bring the pot to a boil. Once the mixture is thick enough to coat the back of your spoon, you now have a béchamel sauce (about 5 minutes).
7. Season to taste with salt, pepper, and garlic powder.
8. Add the cheddar cheese in three batches, making sure that each batch is melted completely before adding the next one.
9. Season as needed with salt and pepper.
10. Add the onions and peppers into the cheese sauce.
11. Fold in the macaroni. Mix well.
12. Pour macaroni mixture into a greased baking dish.
13. Top generously with grated cheese.
14. Transfer to oven and bake for 30-40 minutes or until golden brown
15. Remove from oven and allow to cool for 10 minutes before serving