Switched over to java.util.concurrent from just creating threads for concurrency - a lot simpler and may be faster