edited and add to part 2