Breaking change create branch v3
internal validator was a bad idea, each package you include it in a new internal validator is used and custom functions have to be re-added and so forth; it is better to create a new one that the application/user can manage and pass around if they like.