introduce IAlgorithmWrapper interface (and implementations)
That puts one degree of separation between EventLoop and the algorithm classes, which besides cleaning up the code a bit should also allow to add separate wrappers for re-entrant algorithms, public tools and services.
Edited by Nils Erik Krumnack