Fancier if -then construction