use `exception`?