add and subtract functionality