Move validation, IEquatable and binding support to base class