improve Functional Programming support