Added Phase III and fixed add() and subtract()