Tidied up so code actually works. Tested with SI+ Module.