datastructure for part 2