For the cake:
Preheat oven to 350°. Grease and flour 3 (9 in) cake pans. Using electric mixer, cream butter until fluffy. Add 2 cups granulated sugar and continue to cream well for 6 to 8 minutes. Add eggs 1 at a time, beating well after each addition. Add flour and 1 cup milk alternately to creamed mixture, beginning and ending with flour. Add 1 teaspoon vanilla and continue to beat until just mixed.
Divide batter equally among prepared pans. Level batter in each pan by holding pan 3 or 4 inches above the counter and dropping it flat on to the counter. Do this several times to release air bubbles and assure you of a more level cake. Bake for 25 minutes or until golden brown.
For the filling:
While cake is baking, in a saucepan, combine 2 sticks butter, brown sugar, and 1/4 cup milk. Cook and stir over medium heat for 3 to 5 minutes. Remove from heat and stir in 1 teaspoon vanilla.
Remove cake layers from oven and allow cake to remain in pans as you prepare to stack and fill. Remove first layer and invert onto cake plate. Pierce cake layer with a toothpick over entire surface. Spread 1/3 of filling mixture on cake layer. Top with second layer, repeat process. Top with last layer and repeat process again.
* Cook's Note: As I stack layers together, I stick them with toothpicks to prevent cake from shifting.
For the frosting:
Melt 1 stick butter in a saucepan over medium heat and stir in brown sugar and cream. Bring to a boil, and transfer to a mixing bowl. Add confectioner's sugar and 1 teaspoon vanilla. Beat with a hand-held electric mixer until it reaches a spreading consistency. At this time it may be necessary to add a tablespoon of heavy cream, or more, if frosting gets too thick. Just be sure to add cream in small amounts because you can always add to it, but you can't take away. Frost cake and sprinkle top with chopped nuts, if desired.