Factored out IMessageValidationStrategy into a separate component