Reworked the custom topic validation so that it uses a new shared validation class.