1) Heat the oil in a small cast iron or stainless steel frying pan over medium heat.
2) Once hot, add the onions and mushrooms and saute for 5-8 minutes and then add the tomatoes and spinach and leave on heat for another 3-4 minutes. Remove from heat and set aside.
3) Crack the eggs into a medium mixing bowl and beat with fork or whisk until well blended. Set aside.
4) Put an 8″ pan (the size pan is important when it comes to cooking an omelette) on the stove on medium heat. Allow a few minutes to heat and then add the oil. Be sure the oil coats the entire surface of the pan. Pour the eggs into the pan. Do not stir. Just allow the eggs to cook. They will begin to bubble up. Feel one corner of the eggs with the spatula and see if it is beginning to set up. Once you feel the eggs are cooked enough to turn with the spatula, add the vegetable mixture and the cheese and your choice of additional topping to one side of the egg mixture.
5) Spread the toppings evenly. Put the spatula underneath the side of the eggs without the vegetable mixture and fold over top of the side with the vegetables mixture.
6) Allow to cook another 30 seconds or so longer, remove with spatula and serve.