Refactoring, now use parent/child process model