part 2 almost complete