isObserving property be public
Added duplicated registration safety.
Add destractor method.
Adjust for iOS 8 Safari