added some java 8 functionality