finished part 2 - all working