uses two threads now!