slightly cleaner exception handling