1. Peel and finely chop the onion. Warm a medium pan over a medium heat for 1 min, then add 1 tbsp olive oil and the onion. Season with a pinch of salt and pepper and cook, stirring often, for 5 mins till the onion starts to look glossy.
2. While the onion fries, trim the roots and top 1cm off the spring onions. Finely slice the white and green parts. Peel and crush or grate the garlic cloves. Finely grate the zest from the lemon.
3. Stir the spring onions into the fried onion, keeping a pinch of the green tops back, with the garlic and lemon zest. Cook, stirring once or twice, for 2 mins.
4. Drain the cannellini beans and tip them into the pan. Tip in the chopped tomatoes. Half fill the tin with water (around 200ml) and pour it into the pan. Give everything a good stir, pop on a lid and bring to the boil. Then turn the heat down and simmer for 10 mins, stirring every so often.
5. While the beans simmer, tip the bulgar wheat into a heatproof bowl and pour in 150ml boiling water. Pop a plate on the bowl and set aside to soak for 10-15 mins. The bulgar will soak up the water and become tender and fluffy.
6. While the bulgar soaks, trim the dry ends off the kale and finely slice the stalks and leaves together. Finely slice the sorrel leaves and stalks. Pick the soft fronds off the dill sprigs and roughly chop the feathery leaves.
7. The beans should have thickened a little by now. Stir in the kale leaves and stalks, and most of the sorrel and dill (keep a pinch of both back for garnishing). Cook, stirring now and then, for 4-5 mins till the kale is tender.
8. Squeeze the juice from half the lemon into the beans, stir and taste. Add a pinch more salt and pepper if you think they need it.
9. Fluff the bulgar wheat with a fork and divide between two warm bowls. Spoon over the beans and greens and garnish with the last of the spring onion greens, sorrel and dill. Serve straight away.