Why do we need a function that returns a function?