Replace _addListener with _addEvent, _removeEvent

Reorganise source order
Add _hasClass, _eventPreventDefault, _getTarget methods