spi - refactoring + disco