DSLs are tricky