add source for part I: multipe process, threads