mark `gradient` and `updater` private