long operations performed in separate threads; GUI no longer hangs while waiting