add: attributes, print/flatten datatypes, order of operations