Photograph: Dan Jones
Preheat the oven to 200°C, fan 180°C, gas 6. Cook the pasta in boiling, salted water until just tender (it will finish cooking later); drain. For the cheese sauce, put the butter, flour, spring onions and milk in a pan and slowly bring to the boil, whisking all the time until it thickens. Simmer for a few minutes and remove from the heat.
Season and stir in the cheddar and half the Parmesan until melted, then add the mustard. Stir in handfuls of spinach, so it wilts in the sauce.
Mix the cooked pasta with the sauce. Tip it into a 2.5-litre or 20cm-square ovenproof dish, scatter over the tomatoes and remaining Parmesan and bake for 25-30 minutes until golden. Leave to rest for 5 minutes. Serve with a crisp salad.
Get ahead: assemble ready to cook a few hours ahead, adding 150ml of reserved pasta cooking water to the sauce. Can also be frozen; defrost thoroughly before cooking. In either case, cook until golden and bubbling.
Make it skinny: Cook and drain the pasta. Use skimmed milk and omit the butter in the sauce. Omit the cheddar and parmesan. Mix the pasta with the sauce. Top with the tomatoes, 50g of grated Grana Padano, chopped parsley and 4 tablespoons of breadcrumbs and cook.
Indulge yourself: Cook and drain the pasta. Omit the spring onions from the sauce. Replace the cheddar with 75g each of crumbled Stilton and goats’ cheese and a ball of mozzarella, torn. Omit the tomatoes. Mix the pasta with the sauce. Top with walnut pieces and 50g grated parmesan before baking.
Go meaty: Cook and drain the pasta. Dryfry 150g of chopped streaky bacon until starting to crisp, add 150g of sliced chestnut mushrooms and soften. Stir in chopped sage, cook for 30 seconds, then add to the sauce and pasta. Omit the spinach. Scatter with the tomatoes and parmesan and bake.