support the triary operator