copied changes from the 'noderefactoring' branch
codebase used to migrate to java8 the production system