The API surface we expose doesn't support iterative changes to capabilities very nicely, so we should change that.