Set up constructors and selectors for data types