- 350g/12oz skinned fish, such as ling, hake, cod, haddock or salmon
- 350g/12oz un-dyed smoked haddock, skin removed
- 1 small onion, peeled and quartered
- 1 bay leaf
- 650ml/1 pint 3fl oz milk
- 1kg/2lb 2oz King Edward potatoes, skin on and washed
- salt and freshly ground black pepper
- 50g/2oz butter
- 4 free-range eggs
- 2 tbsp chopped fresh parsley
- 50g/2oz gruyère or cheddar, grated
- 25g/1oz butter
- 25g/1oz plain flour
- salt and freshly ground black pepper
- pinch freshly grated nutmeg
- Preheat the oven to 180C/350F/Gas 4. Place the pieces of fish in a wide pan, add the quartered onion and bay leaf and pour over 450ml/16floz of the milk.
- Bring the milk up to the boil, reduce the heat and simmer for about eight minutes, or until the fish is just cooked.
- Using a fish slice or slotted spoon, carefully remove the fish from the milk and place it on a plate.
- Using a fork, flake the fish into chunky pieces. Spread the pieces out in an ovenproof dish (about 22cm/9in square) or into smaller individual dishes.
- Pour the poaching milk through a sieve into a jug and set aside.
- Place the potatoes into a saucepan and cover with water and a pinch of salt.
- Bring the potatoes to the boil and simmer for 10 minutes.
- Pour out nearly all of the water, leaving about 4cm/1½in of water, and continue to cook for about 20 minutes on a very low heat.
- Test the potatoes with a skewer to see if they are tender – if they aren't soft, then return to the heat for a further five minutes.
- When the potatoes are soft, drain any remaining water and peel them, using a tea towel to hold them if they're too hot to handle.
- Place the potatoes in a bowl and mash until smooth, adding the butter as you mash.
- Place the remaining cold milk (NOT the set-aside poaching milk) into a saucepan and bring to a simmer. Add this milk to the potatoes and beat in. Season with salt and freshly ground black pepper.
- Set the potato topping aside and bring a small pan of water to a gentle boil to boil the eggs. Carefully lower the eggs into the water and boil for eight minutes.
- Drain and cool the eggs under cold water. Peel the eggs, cut into chunks of about 2cm/¾in and place on top of the fish. Sprinkle with the chopped parsley.
- For the white sauce, melt the butter in a pan, stir in the flour and cook for one minute over a moderate heat.
- Gradually add all the set-aside fish poaching milk, whisking all the time, and simmer for 1-2 minutes, stirring, until you have a smooth, slightly thick sauce.
- Remove the sauce from the heat, season with salt, freshly ground black pepper and nutmeg. Pour the sauce over the fish and eggs in the dish.
- Arrange the mashed potato over the top of the sauce, score with a fork to make a pretty pattern and sprinkle with the grated cheese.
- Place in the oven and cook for about 30 minutes, until bubbling and golden-brown on top. Serve straightaway.