DSL, impl and spec template