introduced final to interface and used FluentIterable to replace Iterables