this had to have it's own thread