implement add() partially