Add some more functional spec stuff.

Including a pretty diagram of the various components.