all done up to increment/decrement