No longer need isMounted check as we removeListener so change events shouldn't happen when unmounted
Added testem tests
Fix merge conflict