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.