Combine tomato, half the onion, olive oil, 2 cloves of garlic, lime juice and zest, oregano, thyme, salt and pepper in a bowl and set in the fridge until needed. (Add some cilantro if you like)
Heat a medium pan to medium heat and add oil, add the rest of the onion and garlic and sweat for a minute then add ground beef fully cook the meat and add pepper and onion powder while browning.
Combine water and taco seasoning in a measuring cup then add to the meat (drain meat before if to oily) continue to cook meat at medium-high heat until it boils then reduce down to medium and stir meat occasionally until all the water has reduced.
While the meat is cooking, get the sour cream add the rest of the lime juice and zest, and stir until fully combined set in the fridge until later.
Once meat is finished remove from heat and put in a bowl, clean out frying pan and put back on medium heat.