Safer to manually attach listeners than call base.OnInit because there's already one call to base.Onit in the reflection call and so need to be careful it's not called twice