added macro for defining structure less tediously, and comments for it