add and sub now return object