Preheat oven to 375 degrees and place oven rack in center position.
Grate all cheeses and toss together.
Set milk in a pan and warm.
Peel and thinly slice your potatoes, set aside.
In a large saucepan on medium heat melt butter, add salt and pepper.
Add flour to melted butter and whisk. This is your roux, it will thicken your cheese sauce.
Slowly add warm milk to the roux, continually whisking and heat until mixture begins to thicken.
When milk is thickened, add cheese a handful at a time (retaining the ½ cup for later) whisk cheese, slowly adding more as each handful melts.
When cheese is completely melted and sauce is smooth turn off heat.
Place a layer of potatoes in 8x8 glass baking dish, sprinkle with freshly ground pepper, a little sea salt and sliced green onions. Drizzle some cheese sauce over potatoes. Don’t worry about covering every nook and cranny, the cheese sauce will spread out as the potatoes bake. Repeat layering (potatoes, salt, pepper, onions) two more times or until all potatoes and cheese sauce are used. Again, don’t worry if potatoes are not completely covered with sauce. As they bake the sauce thins out, melts and covers any empty spots. Sprinkle reserved cheese over the top. Bake for 50 minutes or until potatoes are soft and cheese sauce is browned and crispy on top. Sorry, I just drooled a little.