added retrolambda & refactoring