I'm not sure if we should throw exceptions AND log/swallow errors.