re-implemented halfAdder, fullAdder and multi-bit add functions