Part I.
Data Structures