add private to reduce api surface area
try to work around kill_all race condition
leave process in process table until callback returns