validation, attributes, and styling