now with multithreading for the weeding processes as well, and it's all enmoosed