 How many of you use closure or know what closure is? How many of you are testers? Cool. So what is the problem? So testing real-world, stateful business logic is really hard. There are a lot of cases to worry about. There are a lot of combinations. So for example, here is the microwave oven state machine diagram. And as you can see, there is a lot of transitions that can happen. And it has inherent state built into it, which needs to be tested. Even if you have a functional programming language or any of that sort, you still need to test against a certain state. And it becomes difficult to eliminate all possible combinations. How many times should you set the timer back? You may not encounter a bug if you set the timer once. But third time, it might be a bug. And if you try to eliminate all possible combinations, the test becomes very unreadable and they become really hard to use. And what this test is really about. So what I am proposing is that using DSL is a way of writing tests which can solve this problem. So what is a DSL? A DSL is a domain specific language which is like a programming language designed specifically to address solutions to problems in a specific domain. So this is not a general purpose language. It's targeted towards the domain. So let's take a real example of that. So at HelpShift, we are making embeddable support desks for native apps. So as a developer, you can take our SDK, put it inside. Each domain can have several apps. Clash of Clans, Boom Beach, and Ghana has a Ghana app. Each app can have several sections. Each section can have several FAQs. And each FAQ can have several translations in several languages. So here is a Ghana.com FAQ page. How many of you know Ghana.com? Yeah, cool. So that's the domain. This is the app. That's the FAQ section. And within that section, these are the available FAQs, which can be searched by the customers. And here's how you can create an FAQ on our dashboard. Here's you can add a title, a body, and some metadata, like whether the FAQ is available or not. And there are two published meta. So one is that globally, whether this FAQ is available, and each translation can separately be turned on and off. I need to talk about that because it's important later. So there is a problem in our system, which we were trying to solve, is that currently we could not have one FAQ common across several apps. If you have, say, a privacy policy.