I'm wondering do we really need a new type for this?
2) I'd like to reuse .add...