Butter bottom of 9x13" baking dish. Line bottom with whole graham crackers.
Mix pudding with milk. Beat at medium speed for 2 minutes. Blend in cool whip. Pour half of mixture over crackers. Place 2nd layer of crackers over pudding. add 2nd layer of pudding. Then top with crackers. Layers should be: crackers, pudding, crackers, pudding, crackers.
Refrigerate for 2 hours, then frost with chocolate icing and refrigerate for several hours.
ICING: Combine margarine, cocoa and milk in saucepan. Bring ot boil, remove from heat. Add sugar and vanilla. Blend to desired consistency. Add nuts, if desired.
NOTE: You can use any ready made icing to make it easier. Warm in a microwave to thin it out a little before spreading in on the cake.