part 2 almost done, just need to persist