do not require a options.log function to be passed