Reorganized Hash/Equals/Persist into sparate classes