use counter chaining for inc/dec