Preheat your oven to 350 degrees.
Line an 8x8 inch baking pan with foil so that the foil extends 2 inches around the outside of the pan. We tear a piece that hangs over in one direction and then we tear off another piece to hang over in the other direction. Fold your extra inches underneath for now.
Spray inside with cooking spray and set aside.
In a small saucepan, over low heat, melt together butter, brown sugar, semi-sweet and unsweetened chocolate.
Stir constantly until smooth.
Pour into a large bowl.
Stir in sugar with a wooden spoon.
Add eggs and vanilla and stir until totally incorporated.
Add flour and salt. Stir until mixture is well blended and smooth.
Pour batter into your prepared pan and smooth or level the top surface with a spatula.
Bake for 35-40 minutes or until a toothpick inserted into the center comes out pretty clean with a few moist bits attached to it. Be careful not to over bake.
Place your pan on a wire rack and cool for about 1 hour.
Using the foil ends as handles lift brownie out of the pan.
Peel off tin foil and place brownie on rack with the smooth side up. This is the side you will smear your icing on. Cool the brownies completely.
In a small saucepan combine butter, unsweetened and milk chocolate over low heat.
Stir constantly until mixture is melted and smooth.
Pour saucepan into the bowl of a stand mixer or a bowl that you can use your electric mixer with.
On low speed add icing or powdered sugar, salt, vanilla and cream.
Beat on medium speed until smooth, a few minutes.
Spread frosting on top of the brownie.
Decorate with chopped nuts if desired.
Slice into squares and serve at room temperature. Enjoy!