refactor - make use of google-guava