part 2 code written needs testing