abstract addition