You're kind of building a stack of exceptional cases... Wonder what that is :D