use os.Exit instead of return