GUI and multithreading implemented. Multithreading only on GUI version.