added data structure diagram