Pick over 2 pounds of beans. Rinse. Place in four quarts of water in a large pot and bring to a boil. Turn off heat and let beans sit overnight.
The next day, rinse the beans three times. Put them back into the rinsed pot and add 2 or more quarts of chicken stock. If you’re making vegetarian or vegan beans, use vegetable stock or water. Add one chopped onion, a head of garlic, 1/2 cup or more of roasted and peeled green chile, 2 bay leaves, 1/2 tsp. thyme, 1 tsp. Mexican oregano, salt and pepper, and pork of choice: half a rack of smoked ribs, smoked sausage, bacon, or ham hocks. Leave out the pork for vegan or vegetarian version and instead add 2 tablespoons of smoked paprika to give the beans a nice smoky flavor and 1/4 cup of good olive oil. Note: If you have a sensitivity to alliums, substitute finely chopped carrots, celery, and red bell pepper for the onions and garlic. Be sure to chop or grate the vegetables finely enough so that they will break down during cooking. Bring beans to a simmer, cover, and simmer for several hours or until just tender. You can also put the entire pot into a 200º oven and go off and leave them for half a day or more. Add more broth or water as needed to keep beans covered with liquid.
When beans are just tender, add salt and pepper to taste and adjust the other seasonings. Cook at least 2 hours more until the beans absorb the seasonings. The bean liquid will thicken as the beans begin to break down a bit. Keep adding liquid as needed. Serve when creamy, preferably the day after you cook them. Before serving I stir in additional roasted, peeled, and chopped green chile. Garnish with cilantro. These beans keep for 5 days in the refrigerator, and they freeze beautifully.