os defaults to user agent unless specified