add guava lib
move validation off expiration date to dedicated validator
some clean up