added event handling methods