initial setup of data structure and class definitions and methods