use different arguments order in $Element#on + refactoring