part 2 finished, still need to clean code