Refactor to use watchLinksChangeOnce promise and move clearUserPref into registered cleanup
Make observers a Set object