Implement multithreadedness with invokeLater