push selectsecondary comparison functions up into domain objects