Add more DSL specs and refactor method signatures.