make esl can be wrapped in a closure