Break down main spec file

Depends on #164.

Next: Move into plugins.