separate EventHandler and Util