Heat the oven to 350 degrees and grease a 9x13 baking dish well.
Cook the meat and onion over medium high heat until the onion is softened and the meat is browned completely. Drain the extra fat and season with pepper and salt to taste.
Melt the butter in a saucepan over medium heat.
Stir in the flour, and saute for 1 minute.
Mix in the milk, and cook until thickened.
Add in salt and pepper to taste as well as the shredded cheese. Stir until the cheese is melted completely.
Spread a layer of potatoes in the bottom of the casserole dish, and top with ½ the meat mixture.
Spread ⅓ of the cheese mixture over that. Add another layer of potatoes, meat and cheese.
Lastly, place a layer of potatoes on top, and add the remaining cheese sauce.
Cover and bake for 1 hour 10 minutes.
Uncover and bake for another 20 minutes.
Enjoy!