base on new spi annotation