First try at threadpools -- we might need to rethink the approach; I don't know how we can do this without having local variables inside the inside runnable classes.