working add and sub