subviews are now required to be public fields