Add support for "pre" registration validation
Refactor