add first draft for y combinator.