added sigchld handler, cleaned error checking.