previously, new threads were spawned at each call of update() and the threads were redundant, overdoing eachothers work and running more CPU than needed. Now only the necessary number of threads are used.
update() function is threaded at the World level instead of the Model level.