TODO 1.GUI 1.adapt number of threads used to user's machine 2.saving (periodically) status to file 3.new modes?