reshaped project again, splitting the util into mathutil and genutil