simplified exception-handling a lot