Why iOS does not have event contracts