Outer functions approach