Improved error handling
Changed SPI annotations to be compile time
Reworked script mapper and source - refactored shared code to utils class