moved stuff about, recursion and worker pool