confirmed iOS 8 support, simplier hook, separated header