Firstly, make the bechamel sauce.
in a heavy based saucepan, Melt the butter over a low heat. Sprinkle the flour into the butter and cook gently for 1 minutes until the roux is of white colour.
Slowly pour 200ml of milk onto the roux and increase the heat to medium. Whisk continuously until it comes to the boil and add the seasoning. Cook for a further 2-4 minutes to ensure the flour is cooked through. Remove from the heat and stir in 50g of the grated cheddar.
In a bowl, beat the eggs with the rest of milk. Season with salt and pepper.
Lay the bread slices on a flat work surface. Spread some bechamel on each slices of bread. add more cheese and layer the slices of ham.
Sandwich the prepared slices of bread two together to have four croque madame.
Over medium heat, drizzle some oil and add some butter.
once melted, deep the sandwich in the egg mixture and transfer immediately onto the sauté pan.
Cook for 2-3 minutes on each side over medium / low heat, until warmed through. Cover with a lid if needed to help cook faster.
Alternatively, transfer the croque madame on a baking tray and finish to cook them in the oven for 5 minutes.
in the meantime, in a saute pan with a drizzle of oil, fry the last 4 eggs until cooked to your liking. you can finish the eggs with some butter. I like the egg yolk still runny.
Serve the croque madame wit the fried eggs over and enjoy immediately.