Remove compile-time dependency on guava and use reflection instead
Fix mapping to optional of different type and reformat according to code style