bugfix: call internalOnSelect/OnInvalidate before 'external' callback