Is there a reason to define fn variable? Could we do:

    return function() {
        ...
    };