move exceptions to a separate module, define in top-level namespace (#15)