Vanilla JS event handlers