Uses addEventListener for all event binding
Implements activate and deactivate methods