modified handle event