Rinse beans (remove any that are discolored). Fill a large pot half full with water and bring the water to a boil. Remove water from heat and add the beans. Place the lid on the pot and allow the beans to soak 2 hours, then drain the water.
Heat 2 tablespoons olive oil & 2 tablespoons butter in Dutch oven or soup pot.
Add carrots, onions and celery and sauté until tender.
Add garlic and cook 30 seconds more.
Add all soup ingredients except the beans to the vegetables and bring to a boil, then reduce temperature to LOW and simmer 1 hour. Stir periodically.
Add the beans to the soup. Bring to a boil, then reduce temperature to LOW and simmer 2 hours or until the meat begins to fall away from the bones. Stir periodically.
Remove the meat from the bones then place the meat back in the bean pot. Discard the bones.
When ready to serve, remove bacon strips and bay leaves.
If desired, add a dash or two of hot sauce.
Serve with corn bread and garnish with fresh cilantro or parsley.