new util and logic