Refactor abstract Validator and concrete implementations, remove duplicate code.