Added Guava preconditions. Applied utilities classes for equals,
hashCode and toString methods.