big change for render state managing:
1. render state can be append,
2. render state can be restored to last state