Boil pasta according to package instructions.
Prep and cut all of the vegetables.
In a small bowl, whisk together oil, vinegar, garlic, salt and pepper.
Once pasta is cooked drain and transfer to a large mixing bowl.
Add spinach immediately and stir. This will allow the spinach to wilt a bit from the heat of the pasta.
Add tomatoes, basil and onion.
Pour the dressing in and stir to coat evenly. If it seems a bit dry add more balsamic or olive oil.
Finally, stir in avocado and cheese (if using).
Refrigerate for about 30 minutes to one hour before serving.