Tom: modify function add()