added validation and additional styling