added EventHandler implementation