options: consistently use return statuses to report errors