defer add listenners, add options.refork, optional unexpectedExit event