Part I done except for wait()