styling and validation