Rinse beans and place in a large stockpot. Cover with water by about 2 to 3 inches.
Let soak overnight - the beans will swell.
The next morning:
Drain the beans and place back into the stockpot.
Heat oil in a skillet to medium high.
Saute onion until translucent - about 10 to 15 minutes.
Add garlic and saute another minute. Add mixture to the beans in the stockpot.
Add vegetable broth, dice tomatoes, tomato sauce, tomato paste and Worcestershire sauce. The beans should be covered by a couple of inches of liquid. You can add more vegetable broth or water. Stir well.
Add the remaining ingredients and stir well.
Cover and bring to a boil and then remove the lid.
After it comes to a boil turn down the heat and simmer very very low. So low you can barely see the liquid moving. Don't put the lid back on. It becomes much more flavorful with the lid off.
If the liquid cooks down where the beans are not submerged then add some water. If you add more liquid you'll have to cover again, raise the heat to a boil and then turn it down immediately. Uncover. Make sure your heat isn't too high.
Cook for one hour and check the beans. You want them tender If not done yet then cook longer. You shouldn't need to cook longer than 1 1/2 hours.
Taste for seasoning and add more salt if necessary. It's probably perfect.
Freezers up to 3 months and tastes great after reheating.