Put some groundwork in to split the validator into a class cluster to alter implementation detail based on type.