a little speed up
yet a little more speed up for increment function