added java 8 compability