finally finished part 1