Dollar side effects removed
Equality: triangular testing, value object pattern
Privacy: using equals() to compare value object instead of public fields