Preheat oven to 350° and line 3 9" cake pans with parchment and nonstick spray.
In the bowl of an electric mixer, add flour, sugar, baking powder, salt and cocoa powder.
In a separate bowl, combine the oil, eggs, buttermilk, vanilla extract, and vinegar.
With the mixer on low speed, slowly stream in the wet ingredients.
Stop the mixer and scrape the bowl, making sure all dry ingredients are incorporated.
Turn the mixer to medium high speed and mix for 4 minutes.
Evenly distribute the batter into 3 9" cake pans, and then bake for 25-30 minutes, or until the top of the cake springs back when touched.
Cream Cheese Frosting
In the bowl of your electric mixer, beat the room temperature butter until light and fluffy. There should be NO lumps at all.
Once the butter is fluffy, add the cream cheese vanilla extract and mix until well combined.
Slowly add the powdered sugar, on low speed so as to not make a mess! Cream all the ingredients until smooth and combined.
Cake Assembly
When the Cake is cooled, level the tops of each layer.
Place one layer on a cake board or plate, and then cover with a layer of cream cheese frosting. Repeat until all layers are complete. Cover the cake with the remaining frosting.