Use a generic EventHandler instead of a delegate