Heat Oven to 350 degrees. Mix the cake as directed on the box, pour into a greased 9x9 or 13x9 baking pan. Bake for 30-35 minutes. remove the cake from oven and let cool for about 5 minutes. Poke cake with the bottom of a wooden mixing spoon.
To make the pudding
While the cake is baking we are going to prepare our pudding batter. In a medium bowl, prepare instant pudding with milk, whisking until all the lumps are gone. The batter should be runny so that it can absorb into the cake. Pour pudding over cake. Making sure to get right into the holes as much pudding as possible. Cover and put in the refrigerator to set for about 30 minutes.
Frosting
While the cake is in the fridge we are going to prepare the cream cheese frosting. This can be done by hand or using a stand mixer. If using a mixer, in a medium bowl whip the cream cheese and butter for 4-5 minutes on high, lower the speed to medium and add the sugar and vanilla and continue whipping for 3 minutes. Make sure to scrape the sides while whipping.
If you are whipping by hand cream the cream cheese and butter for 3-5 minutes, add the sugar and vanilla and whip for another 5 minutes.
Remove cake from the fridge and frost with the cream cheese frosting. Cut into squares and serve cold. Enjoy!