Preheat the oven to 180°C / 350°F / Gas 4, without the fan. If you need to use the fan, turn the temperature down to 160°C.
Line a 23cm (9inch) square baking pan with baking/parchment paper. (This will make it easier to remove the brownies once they have cooled.)
Place the dark chocolate and butter into a heatproof bowl and set the bowl over a saucepan of simmering water. Make sure not to let the water touch the bottom of the bowl. Stir occasionally until completely melted, then remove the bowl and set aside to cool slightly. Alternatively, place the heatproof bowl in a microwave for 10-second intervals stirring between bursts until melted. Chop up the milk and white chocolate into 1 cm pieces and set aside.
In a large bowl, whisk the eggs, sugar and vanilla until pale and fluffy. I like to use my electric hand mixer which takes about a minute.
Once the egg mixture has increased in volume and is pale and fluffy, add the chocolate and whisk until just combined.
Then sift the flour, cocoa powder, baking soda and salt into the mixing bowl, along with the walnuts and chopped chocolate (leaving some walnuts and chopped chocolate pieces for decorating, if you wish).
Gently fold through with a spatula being careful not to over mix or you will lose all that lovely air that you whipped into the eggs.
Pour the brownie batter into the prepared square baking pan and smooth flat.
Finally, sprinkle over the remaining walnuts and chopped chocolate.
Baking: Bake for 22-25 minutes until set around the edges and the top begins to crack. A toothpick inserted into the centre should not come out clean, but with a few moist crumbs on it.Baking time is the most important part in getting that fudgy gooey brownie texture. Avoid over baking them or they will turn cakey, the centre will continue to bake and set after you remove them from the oven so don’t worry if they seem a bit gooey. Remove from the oven and allow to cool in the pan.