Use more HashCode/Equals/ToStringBuilders
General clean up