Refactor the spec parser into something nicer.
Consolidate element parsers.