Turn DSL into a library