return false instead of std::exit