Issue 5

So here's a pull request for the API & SPI stuff... 
Not all complete, nor entirely cleanup implementation wise, but that should be a pretty good start!