 So, hello. You may remember from yesterday that when there was a discussion about various things that should be improved, Michael, also, I think it was Michael, highlighted that the signal ads and slot implementation that we use is kind of not very flexible. We use the linked class, which is basically like pointer, we're out in some class and there are some macros which make usage of it kind of easier, but not really because it's type unsafe. You can have only one handler for each call and there are some proper macros which don't really look very nice and there was this possibility of trying boost signals, so I kind of tried it. Actually, quite differently, I prefer the cute signal ads for mechanism because I find it more convenient to use, but I'm not re-implementing that for LibreOffice, so I went with boost and I tried it and yeah, I actually don't know if it works because the laptop is really slow to build, but it builds, so I assume it also works, so basically this is how you do something. For those who don't know, signal and slot mechanism is basically a signal, it's a notification something happened, so for example a push button can have signal pressed and slot is a function which can be connected to a signal, so if you have a button and you want to know when it's been pressed, you connect your slot to a signal and it will be called at the right time. So how do you declare a slot, the function will be called. In the class you used to do some declare link and you discovered it was called and what parameters it used and now it's just a function or member function. This is how you connect it. Before you had to use some set function and you use the macro and since this is boost, it's also not readable, you have to do this complicated stuff. This basically means that you, this is the signal object and you connect it and you need to use this bind stuff because it's a member function, the first argument is this and this is underscore one, it means that as another argument you will get the first argument from the signal. When you will be implementing this, just have a look at another already existing piece of code and copy and paste it and update and hopefully you don't get it wrong because at least the visual compiler that I used, the error messages just basically say you got it wrong. So yeah, well it's boost, it could be worse. And this is how you implement the function, so again you had some macro, it was class, this is what the handler was called, there was the argument and it was called this and now it's again just a function and this is basically how it works. So as soon as somebody converts it and I intend to do it as an easy hack, you will just use this, you will create a method like this and it will just work and be converting all the classes. Oh sorry, this is wrong. Sometimes you also need to disconnect because otherwise you would have dangling pointers so you can just have an object which will track the connection between them and you either disconnect explicitly or you will just use the class which will do it automatically and so this is how we actually implement the signal. So first the class had to recall, I remember the link and had a function we just assigned it and if you wanted two of them you basically couldn't so right now you use and this is a kind of, this is kind of again the not entirely obvious syntax, you basically declare a signal object and this means there is a function which returns nothing and takes one argument of this kind. And that's all. I will finish the verb and I will check if it actually works but I'm quite positive it does, so done.