Grease and base line a 20cm springform cake tin; preheat the oven to 180 degrees C.
1. In a large mixing bowl, cream together the butter and sugar until pale and fluffy then beat in the eggs, one at a time.
2. Using a spatula or a large metal spoon, fold in the grated courgette. Sift together the flour, baking powder, ground hazelnuts and cocoa powder then fold into the mixture, using a cutting action.
3. Bake in the center of the oven for about 45-50 minutes when the torte will be risen, firm, and springs back when lightly pressed. Allow to cool slightly, remove from the tin and leave on a wire rack until cold.
4. Meanwhile, prepare the topping by beating together the butter and cream cheese then gradually beat in the sifted icing sugar. When the torte is completely cold, place on a serving plate and swirl over the topping.