top-level exits