Updated observer for keypath:
- using NSStringFromSelector + @selector makes sure the compiler can check for that path
- removeObserver guarded by try-catch because this will throw and exception if the observer is not added or was removed