This project did not start by sitting back and design things first. I Can't tell if Pawel did, it was a good and obvious setup when I took over. But later when things went complex using concurrency it was necessary to make some drawings to show how things are connected. The user however can get by by digesting the most simple diagrams because this is how it feels to the user.
Me, on the other hand, and later people who take over the project, need some diagrams to see how the objects interact with each other and to remember later how and why things were done that way.
First a class diagram where the obvious classes are noted.
The user can use the classes mostly in one of the two following ways;