make addItem more generic