first half of the recursive v-cycle written, but seems not working propoerly.
before os update