Initial working demo.

Still working on what the API should look like.