trying to think through exceptions and object scoping