modified part of the Functional Lenses section