diff --git a/data-aviary.cabal b/data-aviary.cabal
--- a/data-aviary.cabal
+++ b/data-aviary.cabal
@@ -1,5 +1,5 @@
 name:             data-aviary
-version:          0.2.0
+version:          0.2.1
 license:          BSD3
 license-file:     LICENSE
 copyright:        Stephen Tetley <stephen.tetley@gmail.com>
@@ -11,17 +11,19 @@
   A catalogue of the combinator birds (Data.Aviary.Birds) - this 
   module is intended more for illustration than utility.
   .
-  Plus a smaller set (Data.Avery) intended to be useful, 
+  Plus a smaller set (Data.Aviary) intended to be useful, 
   collecting combinators that have already /escaped/ (published 
-  elsewhere) but aren\'t in Data.Function, along with some other 
-  favourites.
+  elsewhere) but aren\'t in Data.Function, along with some 
+  personal favourites.
   .
   Changelog:
   . 
+  0.2.1 added @dup@ and the /combiner/ variants of cardinal-prime.
+  .
   0.2.0 added Haddock docs for @(\#\#)@.
-
+  
 build-type:         Simple
-stability:          highly unstable
+stability:          unstable
 cabal-version:      >= 1.2
 
 extra-source-files:
diff --git a/src/Data/Aviary.hs b/src/Data/Aviary.hs
--- a/src/Data/Aviary.hs
+++ b/src/Data/Aviary.hs
@@ -30,12 +30,18 @@
   , subst
   , bigphi
   , appro
+  , dup
 
   -- * Specs
   , oo
   , ooo
   , oooo
 
+  -- * Combiners
+  , combfi
+  , combfii
+  , combfiii
+
   ) where
 
 import Data.Function
@@ -103,13 +109,20 @@
 -- > on = (appro comb f f)
 --
 appro :: (c -> d -> e) -> (a -> c) -> (b -> d) -> a -> b -> e
-appro f g h x y = f (g x) (h y) 
+appro comb f g x y = comb (f x) (g y) 
 
 
+-- | dup - duplicator aka the W combinator aka Warbler. 
+-- 
+-- > dup f x = f x x
+--
+dup :: (a -> a -> b) -> a -> b
+dup f x = f x x
 
 
 
 
+
 --------------------------------------------------------------------------------
 -- Specs - blackbird, bunting, ...
 
@@ -138,3 +151,44 @@
 -- | Compose an arity 1 function with an arity 4 function.
 oooo :: (e -> f) -> (a -> b -> c -> d -> e) -> a -> b -> c -> d -> f
 oooo f g = (((f .) .) .) . g  
+
+--------------------------------------------------------------------------------
+-- Combiners
+
+
+-- | Combiners - similar to the cardinal\' combinator. 
+--
+-- Mnemonically - @comb@(ine) after applying @f@ to @x@ and a 
+-- single identity: @y@. 
+--
+-- > combfi comb f x y = comb (f x) y
+--
+-- Equivalently:
+--
+-- > combfi comb f = appro comb f id
+-- 
+-- But combfi is a useful introduction to the (somewhat manic, 
+-- but sometimes useful) higher arity versions.
+-- 
+combfi :: (c -> b -> d) -> (a -> c) -> a -> b -> d
+combfi comb f x y = comb (f x) y 
+ 
+-- | Extrapolation of 'combfi' with another identity.
+--
+-- Mnemonically - comb(ine) after applying @f@ to @x@ and two 
+-- identities: @y@ and @z@.
+--
+-- > combfii comb f x y z = comb (f x) y z
+--
+combfii :: (d -> b -> c -> e) -> (a -> d) -> a -> b -> c -> e
+combfii comb f x y z = comb (f x) y z  
+
+-- | Extrapolation of 'combfii' with a further identity.
+--
+-- Mnemonically - comb(ine) after applying @f@ to @s@ and three
+-- identities: @t@ and @u@ and @v@.
+--
+-- > combfii comb f s t u v = comb (f s) t u v
+--
+combfiii :: (e -> b -> c -> d -> f) -> (a -> e) -> a -> b -> c -> d -> f
+combfiii comb f s t u v = comb (f s) t u v  
diff --git a/src/Data/Aviary/BirdsInter.hs b/src/Data/Aviary/BirdsInter.hs
--- a/src/Data/Aviary/BirdsInter.hs
+++ b/src/Data/Aviary/BirdsInter.hs
@@ -125,15 +125,9 @@
 
 -- | Psi combinator - psi bird (?) - Haskell 'on'.  
 psi :: (b -> b -> c) -> (a -> b) -> a -> a -> c
-psi = c (b s (b (b c) (b (b (b b)) (c (b b (b b i)) (c (b b i) i))))) (c (b b i) i)
-  where
-    c = cardinal
-    b = bluebird
-    s = starling
-    i = idiot
+psi = cardinal (bluebird starling (bluebird cardinalstar dovekie)) applicator
 
-  -- TODO - This definition was built with a combinator calculator
-  -- For sanity it ought to be reduced 
+
 
 --------------------------------------------------------------------------------
 -- Other birds
