added some custom exceptions for failed registration