fix perms
fully implement all forms of (cond)