Reworked, corrected SPI