ensured thread safety through slots and signals, so that every GUI update is done in the main thread