I think I figured out the issue with thread joining, so I just need to
figure out how best to fix it, I'll do that later