[FIX] do not use exit in run function