add data structure and a few notes