threaded run; kill; refactor