I don't think calling public API is an issue. Reasonable implementations of addValues will do the right thing.