this doesn't address my original concern that these methods require a quadratic number of code changes.