write SPI in DSL goodness