Fill a large saucepan with water and add a large pinch of salt. Bring it to the boil before adding the macaroni pasta.
Cook for 8 - 10 minutes (or according to the packet's instructions).
To make the cheese sauce
Place the non-dairy butter in a saucepan and warm gently until melted.
Add in the cornflour to create a roux and cook on a medium heat for 1 minute, stirring well to make sure it forms a smooth paste.
Remove the pan from the heat and add just a few drops of the soy milk at a time, beating to incorporate it well each time.Make sure you only add the smallest amount of milk at a time otherwise lumps will form.
As the roux goes from a thick paste to a thick sauce you can add the milk in larger quantities. Once half of the milk has been added you should be able to pour in the rest without lumps forming.
Place the pan back on a medium to high heat and stir the sauce as it comes to a boil. Once it has reached boiling point reduce the heat and let it simmer for 5 minutes to allow it to thicken.
When the sauce has thickened take the pan off the heat again and add in the grated vegan cheese. Keep stirring until the cheese has melted completely (return it to the heat as needed to make sure the cheese melts completely).
Finally, add in the remaining ingredients and stir until they are distributed throughout the sauce.
To bake the mac & cheese
Pre-heat the oven to 200C / 392F / gas mark 6.
Drain the macaroni reserving just a little of the pasta water. Stir well so that the pasta water and macaroni is mixed well with the rest of the sauce.
Pour the macaroni & cheese into an oven proof dish and sprinkled over the breadcrumbs.