added part 1 + 2