implement increment/decrement and tests