Added option for threading instead of forcing it on the user