threads work for the most part, now just need to iron out a few bugs.