part 2 is partially testing ok