Preheat oven to 350 degrees F/ 180 degrees C. Line a 12-cup muffin tin with cupcake liners. Line also another tin with 4-6 liners (depending on the cups size and shape).
In a large mixing bowl combine all purpose flour, baking powder, cocoa powder and sugar. Stir everything very well using a hand whisk. Add eggs, olive oil, vanilla extract and yogurt, mixed with the baking soda. Whisk until combined. Gradually add the water and whisk until smooth.
Using a spoon or an ice cream scoop distribute the batter into the liners. Fill them about halfway.
Bake for about 20 minutes or until a toothpick inserted in the centre of a middle cupcake comes out clean.
Let the cupcakes cool completely, before frosting them, preferably on a wire rack.
In a large mixing bowl beat together peanut butter, soft butter, vanilla and cream cheese with an electric mixer. Start with a lower speed and increase it gradually. Start adding powdered sugar, beating at a lower speed. When the sugar is absorbed, beat at high speed again, until smooth and creamy.
Pipe the frosting on the cupcakes. Alternatively use a spoon or a kitchen knife to frost them.
While the first batch cupcakes is in the oven, keep the rest of the batter in the fridge.
If you decide to make mini cupcakes, bake them about 12-15 minutes.