refactor Util