added finished part 3