bare bones add() implementation