use com.google.common.base.Optional
fix javadoc for Optional