implements ++ -- for sp