Peel and finely chop the onion and garlic; set aside but keep them separate.
Wash the carrot and celery, chop them finely, set aside.
Take out 1 cup (8 oz / 250ml) of the water, and set aside, then drain the beans.
Start heating your oven.
Heat the olive oil in a deep, large frying pan over medium heat. Add the onion, cook until soft and translucent (about 10 minutes), then cook for a further 10 minutes with the addition of the garlic, celery and carrot.
Now add the remainder of the ingredients including the bean water you set aside, but not the dill. Bring back to a simmer, and simmer for 10 minutes.
Transfer to an ovenproof dish, and pop in the oven uncovered. Cook until the beans are tender and the sauce has thickened -- about 1 hour.
Remove from oven and stir in the parsley.
Garnish with the chopped, fresh dill, drizzle with some nice olive oil, and send to the table.