Putting it all together.

Closes #4