add multiprocessing, handle ctrl-c