add some more documentation and raise errors if DSL isn't used