threads are started in daemon mode so they stop on keyboard interrupt