Object-oriented to functional design can be quite challenging, not least because OO programmers are not used to thinking in terms of verbs instead of nouns. Non-hybrid functional languages do not allow falling back to class hierarchies, so one is forced to learn to think in terms of verbs and find other ways of doing polymorphism and composition. We'll investigate some examples of that in Clojure.