Refactor model specs

From airpair with Edward Anderson. Status: incomplete