Saving state more efficiently

Currently it costs 8 * 4 bytes to save for NoWidget's placing which is huge when the state array is huge, we can reduce it to pointer size by having Option < Box < Placing > >