Place beans in large pot, add 4 cups of cold water. Let beans soak overnight.
Drain the beans and boil them for ~45, until desired softness. Beans take a long time to soften more when they are in the oven, so get this part right!
In a bean crock or casserole dish, place the onions
In a small bowl, mix the ketchup, molasses, salt, pepper, vinegar, sugar, mustard, BBQ sauce and chipotles.
Drain and rinse beans, put them in the crock.
Pour the ketchup mixture over the beans and stir gently. (Add bacon at this point, if not using pulled pork)
Add water till beans are covered and bake at 250 for 6 hours.
Remove one cup of beans and mash them in a bowl. Return to the beans and mix. (If not using bacon, add the pulled pork now)
Bake for another hour
Remove lid to allow the beans to darken, for another hour