Changed threading to use Q - seems less error prone