I'm okay with the assert. I possibly went a little nuts with the *Error classes.