Preheat the oven to 350 and line a muffin pan with cupcake liners.
Sift flour, baking soda, salt and baking powder together and set aside.
Make sure your other ingredients are ready.
In a bowl of an electric mixer, beat egg whites for a few seconds and slowly start pouring in sugar. Beat for 3-4 minutes, until white and fluffy.
Start pouring in oil slowly as the eggs are still beating.
Add vanilla and lower the speed to low.
Alternating, add flour mixture and buttermilk in two parts, starting and ending with dry ingredients. Mix until just combined.
Take out half the batter.
Mix in cocoa powder and additional 1/4 cut buttermilk to the remaining batter in the mixer until just combines. Make sure to scrape sides and bottom of the bowl and mix until all combined.
To make things easier on you, add batter to two separate piping bags and fill cupcake liners 3/4 full, using both bags at the same time, with chocolate and vanilla batter being side by side.
Once all the cupcakes are filled, take a toothpick and swirl the batter a couple of times, to form marble texture.
Bake for 17-19 minutes.
Cool completely before frosting!
Frosting:
Beat butter and cream cheese together, on medium-high speed, until smooth, 1-2 minutes.
Lower the speed to low and beat in powder sugar and vanilla.
Turn up the speed back to medium-high and beat for about 3-4 minutes, until the frosting is light, smooth and fluffy.
Take out half the frosting.
On low speed, drizzle in melted chocolate and mix well, make sure to scrape sides and bottom of the bowl and mix until all even.
Fill two separate piping bags with vanilla and chocolate frosting (cut off tips about 1/4 inch wide) and add them, side by side into one piping bag, fitted with a frosting tip.