reverted to nearly the original code, but had to find how to ignore method that doesn't call super: "#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"