spi first draft, write works, read untested