use fork() if possible