diff --git a/gwinc/__init__.py b/gwinc/__init__.py
index e0b153a1169b9ab325ca0165218f7b1ba962b558..12cd527da86e18725e3b5aaebaca716a4957e400 100644
--- a/gwinc/__init__.py
+++ b/gwinc/__init__.py
@@ -1,5 +1,5 @@
 from .ifo import load_ifo
-from .util import precompIFO
+from .precomp import precompIFO
 from .gwinc import noise_calc
 from .gwinc import gwinc
 from .plot import plot_noise
diff --git a/gwinc/__main__.py b/gwinc/__main__.py
index a773c1c8653d5f4ac34d5b5baeb6b78090a489d9..0b5b13a2f29acaf95edb51b282cdd731466960f5 100644
--- a/gwinc/__main__.py
+++ b/gwinc/__main__.py
@@ -8,6 +8,7 @@ import logging
 logging.basicConfig(level=logging.INFO)
 
 from .ifo import available_ifos, load_ifo
+from .precomp import precompIFO
 from . import plot_noise
 
 ##################################################
diff --git a/gwinc/gwinc.py b/gwinc/gwinc.py
index 206b85c8a4fae311964669387d45415ce98fdc13..6dad140236325b0212f74b20153c329a5b2a3ece 100644
--- a/gwinc/gwinc.py
+++ b/gwinc/gwinc.py
@@ -3,7 +3,7 @@ import numpy as np
 from numpy import log10, pi, sqrt
 import copy
 
-from .util import precompIFO
+from .precomp import precompIFO
 from . import noise
 from . import plot
 
@@ -115,8 +115,8 @@ def gwinc(freq, ifoin, source=None, fig=False):
 
     ifo = copy.deepcopy(ifoin)
 
-    modeSR = 0
-    PRfixed = 0
+    modeSR = False
+    PRfixed = True
 
     # stick it into the IFO so that it gets passed around
     ifo.modeSR = modeSR
diff --git a/gwinc/util.py b/gwinc/precomp.py
similarity index 94%
rename from gwinc/util.py
rename to gwinc/precomp.py
index f21f0d52492277145a3759b76c0e006c1eb83b9c..a3c8b098fbc8da7217c212d448b5013a547d3491 100644
--- a/gwinc/util.py
+++ b/gwinc/precomp.py
@@ -1,27 +1,24 @@
-from __future__ import division, print_function
+from __future__ import division
 from numpy import pi, sqrt
-from scipy.io.matlab.mio5_params import mat_struct
 from scipy.io import loadmat
 import scipy.special
+import logging
 
 from .struct import Struct
 from .noise.coatingthermal import getCoatDopt
 
 
-def precompIFO(ifo, PRfixed=0):
+def precompIFO(ifo, PRfixed=True):
     """Add precomputed data to the IFO model.
-    
+
     To prevent recomputation of these precomputed data, if the
     ifo argument contains ifo.gwinc.PRfixed, and this matches
     the argument PRfixed, no changes are made.
 
     """
 
-    # check PRfixed
-    #if 'gwinc' in ifo.__dict__:
-        # && isfield(ifo.gwinc, 'PRfixed') && ifo.gwinc.PRfixed == PRfixed
-        #return
-    ifo.gwinc = mat_struct()
+    if 'gwinc' not in ifo:
+        ifo.gwinc = Struct()
     ifo.gwinc.PRfixed = PRfixed
 
     ################################# DERIVED TEMP
@@ -47,7 +44,7 @@ def precompIFO(ifo, PRfixed=0):
         dL = ifo.Optics.ETM.CoatingThicknessLown
         dCap = ifo.Optics.ETM.CoatingThicknessCap
         ifo.Optics.ETM.CoatLayerOpticalThickness = getCoatDopt(ifo, T, dL, dCap=dCap)
-  
+
     # compute power on BS
     pbs, parm, finesse, prfactor, Tpr = precompPower(ifo, PRfixed)
     ifo.gwinc.pbs = pbs
@@ -82,7 +79,7 @@ def precompIFO(ifo, PRfixed=0):
     return ifo
 
 
-def precompPower(ifo, PRfixed):
+def precompPower(ifo, PRfixed=True):
     """Compute power on beamsplitter and finesse and power recycling factor.
 
     """
@@ -114,7 +111,7 @@ def precompPower(ifo, PRfixed):
     garm = t1 / (1 - r1*r2*sqrt(1-2*loss))  # amplitude gain wrt input field
     rarm = r1 - t1 * r2 * sqrt(1-2*loss) * garm
 
-    if (PRfixed == 1):
+    if PRfixed:
         Tpr = ifo.Optics.PRM.Transmittance  # use given value
     else:
         #prfactor = 1/(2*loss * neff + bsloss);         % power recycling factor