Optional support
Add java 8 Optional support