moving protocol into spi.protocol