added CHANGED event on updateFromExternal
refactored almost everything ;)