some revisions. Decided I was going to do two files sadly.
First commit of the threaded version of code