Preheat oven to 180 degrees. Grease and flour a 9 inch pan.
Sieve together ingredients from flour to salt and set aside.
Beat butter and sugar till soft and fluffy. Add one egg at a time and beat till incorporated. Add the vanilla and beat.
Add half the flour and half the milk. Beat briefly.
Add the remaining flour and milk and beat till all moist.
Pour into prepared pan and bake for 30-40 minutes till skewer comes out clean.
Cool in pan for 10 minutes before flipping onto cooling rack to cool completely.
To prepare the topping, whisk the ingredients and cook on low flame till slightly thickened. Spread on top of the cake once cooled.