redid the addition functionality and general input behavior