continues my descent into multithreading hell