Pulled out a couple of separate API packages
Added a couple of definitions
Added exception for when the SPI support cannot be found
Added example