wow that seems dangerous you are mixing up state suddenly with the struct like data. I think this deserves a larger comment why we do this?