add part 3: data structures