What do the changes in the state observer have to do with the state size? All it should care about is sending deltas and keeping its own copy of the state updated. Would you mind breaking this out into a separate PR? 