optimisation for java 8