added the add and sub functions