basic SPI interfaces that need to be moved into its own spi module