rewrote the utils file to be a IFFE