completed part 2
finished most of part 3