replace java.util.Optional with the guava one
fix constructor problem