Re-work how the current render state his handled. It now gets the latest object in the states array instead of being a weak pointer to an item in the states array.
We now have two simple methods for pushing and popping what's on the state array.