implement ADD (untested)