added guava library to allow enhancements to argument checking