why `exit/1` here instead of returning `{stop, ...}` from this function?