Unified adding elements across types