#81 initial SPI refactoring
#81 adjusted naming and minor refactoring