Initial spike on sagas

For discussion: I still have some more tests to write, but this should give you an idea of the direction things are going.