diff --git a/plio/io/io_controlnetwork.py b/plio/io/io_controlnetwork.py
index 24a0d05e54c5f9be2b45cbad059af9a9f20af814..b979440f0a3c4cfff12974d395e034814151fb3e 100644
--- a/plio/io/io_controlnetwork.py
+++ b/plio/io/io_controlnetwork.py
@@ -16,7 +16,6 @@ DEFAULTUSERNAME = 'None'
 def write_filelist(lst, path="fromlist.lis"):
     """
     Writes a filelist to a file so it can be used in ISIS3.
-
     Parameters
     ----------
     lst : list
@@ -47,70 +46,18 @@ def from_isis(path, remove_empty=True):
 
     return df
 
-def to_isis(path, obj, serials, mode='wb', version=2,
+def to_isis(obj, path, mode='wb', version=2,
             headerstartbyte=HEADERSTARTBYTE,
             networkid='None', targetname='None',
             description='None', username=DEFAULTUSERNAME,
             creation_date=None, modified_date=None,
             pointid_prefix=None, pointid_suffix=None):
-    """
-
-    Write an AutoCNET Candidate graph object to an ISIS3 compatible control
-    network.
-
-    Parameters
-    ----------
-    path : str
-           Input path where the file is to be written
-
-    network : dict
-              A dict of lists keyed with a
-
-    mode : {'a', 'w', 'r', 'r+'}
-
-        ``'r'``
-            Read-only; no data can be modified.
-        ``'w'``
-            Write; a new file is created (an existing file with the same
-            name would be deleted).
-        ``'a'``
-            Append; an existing file is opened for reading and writing,
-            and if the file does not exist it is created.
-        ``'r+'``
-            It is similar to ``'a'``, but the file must already exist.
-
-    version : int
-          The current ISIS version to write, defaults to 2
-
-    headerstartbyte : int
-                      The seek offset that the protocol buffer header starts at
-
-    networkid : str
-                The name of the network
-
-    targetname : str
-                 The name of the target, e.g. Moon
-
-    description : str
-                  A description for the network.
-
-    username : str
-               The name of the user / application that created the control network
-
-    pointid_prefix : str
-                     Prefix to be added to the pointid.  If the prefix is 'foo_', pointids
-                     will be in the form 'foo_1, foo_2, ..., foo_n'
-
-    pointid_suffix : str
-                     Suffix to tbe added to the point id.  If the suffix is '_bar', pointids
-                     will be in the form '1_bar, 2_bar, ..., n_bar'.
-    """
     with IsisStore(path, mode) as store:
         if not creation_date:
             creation_date = strftime("%Y-%m-%d %H:%M:%S", gmtime())
         if not modified_date:
             modified_date = strftime("%Y-%m-%d %H:%M:%S", gmtime())
-        point_messages, point_sizes = store.create_points(obj, serials, pointid_prefix, pointid_suffix)
+        point_messages, point_sizes = store.create_points(obj, pointid_prefix, pointid_suffix)
         points_bytes = sum(point_sizes)
         buffer_header, buffer_header_size = store.create_buffer_header(networkid,
                                                                        targetname,
@@ -136,7 +83,6 @@ def to_isis(path, obj, serials, mode='wb', version=2,
 class IsisStore(object):
     """
     Class to manage IO of an ISIS control network (version 2).
-
     Attributes
     ----------
     pointid : int
@@ -152,8 +98,8 @@ class IsisStore(object):
               5: int,
               8: bool,
               9: str,
-              11: None,
-              14: None}
+              11: list,
+              14: int}
         self.header_attrs = [(i.name, bt[i.type]) for i in cnf._CONTROLNETFILEHEADERV0002.fields]
         self.point_attrs = [(i.name, bt[i.type]) for i in cnf._CONTROLPOINTFILEENTRYV0002.fields]
         self.measure_attrs = [(i.name, bt[i.type]) for i in cnf._CONTROLPOINTFILEENTRYV0002_MEASURE.fields]
@@ -247,29 +193,25 @@ class IsisStore(object):
         ----------
         data : str
                to be written to the file
-
         offset : int
                  The byte offset into the output binary
         """
         self._handle.seek(offset)
         self._handle.write(data)
 
-    def create_points(self, df, serials, pointid_prefix, pointid_suffix):
+    def create_points(self, df, pointid_prefix, pointid_suffix):
         """
         Step through a control network (C) and return protocol buffer point objects
-
         Parameters
         ----------
         df : DataFrame
               with the appropriate attributes: point_id, point_type, serial,
               measure_type, x, y required.
               The entries in the list must support grouping by the point_id attribute.
-
         Returns
         -------
         point_messages : list
                          of serialized points buffers
-
         point_sizes : list
                       of integer point sizes
         """
@@ -302,7 +244,7 @@ class IsisStore(object):
                         point_spec.aprioriCovar.extend(arr)
                     else:
                         setattr(point_spec, attr, attrtype(g.iloc[0][attr]))
-            point_spec.type = 2  # Hardcoded to free this is bad
+            # point_spec.type = 2  # Hardcoded to free this is bad
 
             # The reference index should always be the image with the lowest index
             point_spec.referenceIndex = 0
@@ -314,10 +256,10 @@ class IsisStore(object):
                 for attr, attrtype in self.measure_attrs:
                     if attr in g.columns:
                         setattr(measure_spec, attr, attrtype(m[attr]))
-                measure_spec.serialnumber = serials[m.image_index]
+                measure_spec.serialnumber = m.serialnumber
                 measure_spec.sample = m.x
                 measure_spec.line = m.y
-                measure_spec.type = 2
+                measure_spec.type = m.measure_type
                 measure_iterable.append(measure_spec)
                 self.nmeasures += 1
 
@@ -336,29 +278,22 @@ class IsisStore(object):
         """
         Create the Google Protocol Buffer header using the
         protobuf spec.
-
         Parameters
         ----------
         networkid : str
                     The user defined identifier of this control network
-
         targetname : str
                  The name of the target, e.g. Moon
-
         description : str
                   A description for the network.
-
         username : str
                The name of the user / application that created the control network
-
         point_sizes : list
                       of the point sizes for each point message
-
         Returns
         -------
         header_message : str
                   The serialized message to write
-
         header_message_size : int
                               The size of the serialized header, in bytes
         """
@@ -382,38 +317,28 @@ class IsisStore(object):
                           creation_date, modified_date):
         """
         Create the PVL header object
-
         Parameters
         ----------
         version : int
               The current ISIS version to write, defaults to 2
-
         headerstartbyte : int
                           The seek offset that the protocol buffer header starts at
-
         networkid : str
                     The name of the network
-
         targetname : str
                      The name of the target, e.g. Moon
-
         description : str
                       A description for the network.
-
         username : str
                    The name of the user / application that created the control network
-
         buffer_header_size : int
                              Total size of the header in bytes
-
         points_bytes : int
                        The total number of bytes all points require
-
         Returns
         -------
          : object
            An ISIS compliant PVL header object
-
         """
 
         encoder = pvl.encoder.IsisCubeLabelEncoder
@@ -445,3 +370,4 @@ class IsisStore(object):
         ])
 
         return pvl.dumps(header, cls=encoder)
+
diff --git a/plio/io/tests/test_io_controlnetwork.py b/plio/io/tests/test_io_controlnetwork.py
index 1ff1da297d507eca4eca408e63c5d4bdfe770848..95bb3ebc7a18695cb1f0e4fec58619cf2ec26599 100644
--- a/plio/io/tests/test_io_controlnetwork.py
+++ b/plio/io/tests/test_io_controlnetwork.py
@@ -33,9 +33,7 @@ class TestWriteIsisControlNetwork(unittest.TestCase):
         serial_times = {295: '1971-07-31T01:24:11.754',
                         296: '1971-07-31T01:24:36.970'}
         cls.serials = {i:'APOLLO15/METRIC/{}'.format(j) for i, j in enumerate(serial_times.values())}
-        columns = ['point_id', 'point_type', 'serialnumber', 'measure_type', 'x', 'y', 'image_index']
-
-
+        columns = ['point_id', 'type', 'serialnumber', 'measure_type', 'x', 'y', 'image_index']
 
         data = []
         for i in range(cls.npts):
@@ -46,7 +44,7 @@ class TestWriteIsisControlNetwork(unittest.TestCase):
 
         cls.creation_date = strftime("%Y-%m-%d %H:%M:%S", gmtime())
         cls.modified_date = strftime("%Y-%m-%d %H:%M:%S", gmtime())
-        io_controlnetwork.to_isis('test.net', df, cls.serials, mode='wb', targetname='Moon')
+        io_controlnetwork.to_isis(df, 'test.net', mode='wb', targetname='Moon')
 
         cls.header_message_size = 78
         cls.point_start_byte = 65614 # 66949
@@ -56,7 +54,7 @@ class TestWriteIsisControlNetwork(unittest.TestCase):
         serial_times = {295: '1971-07-31T01:24:11.754',
                         296: '1971-07-31T01:24:36.970'}
         serials = {i:'APOLLO15/METRIC/{}'.format(j) for i, j in enumerate(serial_times.values())}
-        columns = ['point_id', 'point_type', 'serialnumber', 'measure_type', 'x', 'y', 'image_index']
+        columns = ['point_id', 'type', 'serialnumber', 'measure_type', 'x', 'y', 'image_index']
 
         data = []
         for i in range(self.npts):
@@ -67,7 +65,7 @@ class TestWriteIsisControlNetwork(unittest.TestCase):
 
         self.creation_date = strftime("%Y-%m-%d %H:%M:%S", gmtime())
         self.modified_date = strftime("%Y-%m-%d %H:%M:%S", gmtime())
-        io_controlnetwork.to_isis('test.net', df, serials, mode='wb', targetname='Moon')
+        io_controlnetwork.to_isis(df, 'test.net', mode='wb', targetname='Moon')
 
         self.header_message_size = 78
         self.point_start_byte = 65614 # 66949