Preheat the oven to 165 degrees. Line a square cake pan with baking/parchment paper with extra hanging over the sides.
Place chocolate and butter in a heatproof bowl and put over a saucepan of simmering water. Stir the chocolate and butter together with a spatula until melted.
Set aside the mixture for few minutes until it becomes warm.
To this add sugar and whisk well with a wire whisk. Then add vanilla extract and eggs one at a time and beat well.
Now add the flour, salt and mix well with a spatula until the batter is smooth and shiny and starts to leave the side, say about a minute.
Remove 1/2 cup (100 gms) of the brownie batter and set aside. Spread the rest of brownie batter into the cake pan. Spread evenly with a spatula.
In a bowl add cream cheese and beat with a hand mixer until smooth. You can also beat in a food processor.
Add sugar, egg, vanilla extract and beat together. Scrape the sides and beat again until smooth, creamy and thick.
Spread this cream cheese mixture over the brownie layer evenly.
Drop heaped teaspoons of the reserved brownie batter over the cream cheese layer. Make a marbled effect using a wooden skewer or flat bladed knife.
Bake in the preheated oven for about 25-30 minutes or until a skewer inserted into the centre has moist brownie crumbs clinging.
Remove from oven and place on a wire rack to cool completely. Cover and refrigerate for 4-5 hours or overnight. Cut into squares and serve.