trying to fix thread joining etc
cut out some wasted cycles