more styling and some validation checks