refreshListener moved to threadListener