Refactor DSL to make context available in Result (WIP)