only the parent process needs to ensure cleanup (#12)