using commons-lang3, using lambdas
integrated latest changes from dnet40
codebase used to migrate to java8 the production system