added event binding and result