yield functionality