1. Start with the sauce. Heat the oil in a saucepan, add the onion and garlic and cook on a low heat, for 8-10 minutes, until the onion is soft and almost transparent. Add the remaining ingredients, season and simmer over a low heat, stirring, for 25-30 minutes, until the sauce has thickened.
2. For the meatballs, mix the Italian herbs into the mozzarella. Take a handful and squeeze it into a tight ball that is slightly smaller than a 50p coin. Roll 12 balls, then chill while you prepare the meat.
3. In a large bowl, beat the egg with 1 tbsp water. Mix in the cheddar (or parmesan) and season. Add the breadcrumbs and mash together until it’s well mixed and the breadcrumbs are soggy. (Leave to soak for a few minutes, if necessary.) Add the mince and mix well until combined; divide into 12 portions.
4. Take 1 portion and squash it with the palm of your hand into a flat disc about 1cm thick. Take a chilled mozzarella ball and gently push it into the centre of the disc. Wrap the meat around the mozzarella, pinch together any gaps, then roll the whole thing around in your hands until the cheese is evenly covered. Repeat with the remaining meat and cheese.
5. Preheat the oven to 150°C, gas mark 2. Heat the oil in a non-stick frying pan until hot. Remove the pan from the heat to avoid the oil spitting, then, working from the top (12 o’clock), add the meatballs clockwise around the pan. Return to the heat for 2-3 minutes to brown. Take off the heat and turn each meatball, one at a time, working clockwise from the top, and return to the heat. Repeat until the meatballs are browned all over, then transfer to an ovenproof dish and bake for 20 minutes, turning halfway through.
6. For the spaghetti, bring a deep pan of salted water to the boil. Add the pasta and gently push it down as it softens until it is all submerged. Simmer for 10 minutes, stirring occasionally.
7. Taste the sauce and season if necessary. It should be quite thick and rich; you can add a splash of water if it’s too thick. Remove the meatballs from the oven (don’t worry if some of the cheese has leaked out) and take the sauce off the hob.
8. Drain the pasta and divide between 4 plates. Spoon some sauce over each and top with 2-3 meatballs (depending on how hungry you are). Grate over some more cheese and add some basil, if liked. Enjoy!