Preheat oven to 350F and grease a 10x10 casserole dish.
Peel and thinly slice the russet potatoes into slices about β β thick - it may help to carefully use a mandolin on the thicker setting. Slice onion into thin rounds.
Arrange potatoes and onions in the casserole dish in rows with a slice of onion spaced in after every few potato slices. Set casserole dish aside.
In a small sauce pan heat butter over medium-low heat until melted and bubbling. Mix in the all purpose flour with a whisk and let cook for another minute.
Slowly whisk in the milk in small increments until it is all smoothly mixed in. Whisk in the salt and pepper.
Reduce the heat to low and pour the cheese into the sauce pan. Continue stirring until the cheese is completely melted. Pour the cheese mixture over the potatoes and onions in the casserole dish. Pour the finely grate cheese over top and cover the dish with tinfoil.
Bake covered at 350F for 70 minutes. Then, remove the foil and bake for another 10-15 minutes for the top to get golden brown.
Notes
You can use golden potatoes instead of russet
To save time you can leave the potato skin on if the texture doesn't bother you
You can use gruyere cheese or a blend of cheeses in place of the sharp cheddar