can support any number of threads