In a large saucepan add the milk, sugar, cornstarch, salt, egg and egg yolk.
Continuously whisk over medium-high heat until thick and it starts to bubble. This takes time to thicken up, don't be nervous that it is not thickening right away.
Remove mixture from heat then whisk in butter and vanilla extract until butter is melted.
Remove the pudding from the heat and stir in the vanilla and butter. Whisk until the butter is well incorporated.
Place plastic wrap over the top of pudding making sure it touches pudding to prevent a film from forming as it cools. Then put in refrigerator until fully chilled
Top with whipped topping, if desired.
Store in an airtight container and keep in the refrigerator for up to 5 days.