Divide the egg yolks from the egg whites. Place the egg whites in a medium bowl. Place the egg yolks in another bowl and set aside.
Use a hand mixer on high speed to beat the egg whites until the are frothy and can hold a peak.
Transfer the egg whites to a smaller bowl and set aside.
In the same mixing bowl that you beat the egg whites in, cream together the butter and sugar.
Add the egg yolks, vanilla and butter extracts. Beat for 1 minute.
In a small bowl, whisk together the flour, baking powder, baking soda and salt.
Add half the flour mixture to the creamed butter. Mix.
Add half the buttermilk. Mix.
Add the remaining flour mixture and then buttermilk to the cake batter, mixing between each addition.
Beat until smooth, no more than 1 minute. Do not overbeat the cake batter.
Fold the egg whites into the cake batter using a rubber spatula very gently. Be careful not to mix too quickly or harshly. Just fold gently just until the egg whites are completely folded in. This is what keeps your cake fluffy!
Grease and flour two 9" round cake pans.
Divide the cake batter evenly between the two prepared pans.
Bake for 25 minutes, until the top of the cake bounces back when you touch it. Be careful not to open the oven door until you think your cake is done or the cakes may fall.
Allow the cakes to cool for 5 minutes, then loosen the edges of the cake with a knife and turn them out onto a wire rack to cool completely.
Once the cake is cool, frost with the chocolate frosting (or whatever frosting you'd like!).