defining data structures