This type of validation belongs at the Site object level. You should just blindly pass the parameters to the Site constructor - if it errors there, so be it.