don't fork child processes, removes dependency on pcntl module