fixing addition carry bug, with test