Combine the first 6 ingredients and blend until smooth (I like to use a whisk to stir it).
Pit, scoop and mash the avocado in a separate bowl.
Blend the mashed avocado, onion and tomato with the rest of the ingredients in the first bowl.
Spritz some lime juice on top, and then cover it with cling wrap directly on the guacamole. This will keep it from browning on top.
Put it in the fridge and let it set for 3-4 hours.
Taste and add salt & pepper to taste
Garnish with cilantro leaves, shredded cheese, diced onion, and/or black olives before serving.