invoke with threads