Whisk together sugar, cocoa powder, cornstarch and salt in a small bowl and set aside.
In a medium heavy bottomed saucepan whisk together the cream, milk, and egg yolks.
Add the sugar mixture to the saucepan and whisk to combine well.
Set the pan over medium heat, and bring to a boil, whisking constantly. I like to switch to a silicone spoonula once it starts thickening, to better scrape the sides and bottom of the pan. Note: pull the pan off the heat when you see that first bubble.
Pour the pudding through a strainer into a bowl and push everything through, leaving any small lumps behind. Note: it helps if your bowl has a spout so you can easily fill your pudding cups.
Stir in the chocolate, butter, and vanilla until everything is melted and the pudding is smooth and glossy.
Immediately pour into your serving cups. Enjoy warm, or chilled. The pudding will thicken further as it chills, and will be fully set in 3 hours. Top with whipped cream if you like.
Cut the calories by using all milk instead of milk and cream.