Cook spaghetti according to packet instructions.
Heat 2 tablespoons of olive oil in a shallow frying pan. Slice mushrooms and add to hot pan. Saute until coloured and soft. If adding bacon, dice and add to the pan and cook until brown.
In a jug or small bowl whisk egg yolks, cream, half of the parmesan and salt & pepper together well.
When pasta is cooked reserve half a cup of cooking liquid and then drain well. Keep the stove on low heat and return pasta to saucepan on stove and immediately pour in egg/cream mixture. Stir through for one to two minutes to warm through the cream and gently cook the eggs. Add a little cooking water if you need more sauce. Add mushrooms, bacon and spinach. Stir through and serve. Garnish with pamersan.