this somehow seems cleaner to me;
for the record, I don't like how Clojure does "cond" - Scheme does it better;