add Y combinator