diff --git a/main.py b/main.py
index da88ec9d7a6f7c113e7c1cb3922a0d10795c00ae..4402848d26ab4570edaa292998fe443c0264a7c1 100644
--- a/main.py
+++ b/main.py
@@ -274,9 +274,13 @@ def simplex():
         objective.append(0)
 
     source_node = graph.nodes.get('s')
+    sink_node = graph.nodes.get('t')
     for edge_connection in source_node.get_edges().values():
         edge_index = all_graph_edges.index(edge_connection)
         objective[edge_index] = 1
+    for edge_connection in sink_node.get_edges().values():
+        edge_index = all_graph_edges.index(edge_connection)
+        objective[edge_index] = -1
 
     # Set max flow capacity constraints for each edge.
     for edge_index in range(len(all_graph_edges)):
@@ -295,30 +299,33 @@ def simplex():
 
     # Update all nodes to state that "edge flow coming in must be less or equal to edge flow going out."
     for node in all_graph_nodes:
-        # Check values of all incoming and outgoing edges for node.
-        incoming_edges = node.get_incoming_edges()
-        outgoing_edges = node.get_outgoing_edges()
-
-        # Populate constraint row.
-        constraint_row = []
-        for index in range(len(all_graph_edges)):
-            constraint_row.append(0)
-
-        # Set constraint row values.
-        for incoming_edge in incoming_edges:
-            edge_index = all_graph_edges.index(incoming_edge)
-            constraint_row[edge_index] = 1
-        for outgoing_edge in outgoing_edges:
-            edge_index = all_graph_edges.index(outgoing_edge)
-            constraint_row[edge_index] = -1
-        constraints.append(constraint_row)
 
-        # Set constant values.
-        # total_capacity_out = 0
-        # for outgoing_edge in outgoing_edges:
-        #     total_capacity_out += outgoing_edge.get_capacity()
-        # constants.append(total_capacity_out)
-        constants.append(0)
+        # Skip source and sink nodes.
+        if node != source_node and node != sink_node:
+            # Check values of all incoming and outgoing edges for node.
+            incoming_edges = node.get_incoming_edges()
+            outgoing_edges = node.get_outgoing_edges()
+
+            # Populate constraint row.
+            constraint_row = []
+            for index in range(len(all_graph_edges)):
+                constraint_row.append(0)
+
+            # Set constraint row values.
+            for incoming_edge in incoming_edges:
+                edge_index = all_graph_edges.index(incoming_edge)
+                constraint_row[edge_index] = 1
+            for outgoing_edge in outgoing_edges:
+                edge_index = all_graph_edges.index(outgoing_edge)
+                constraint_row[edge_index] = -1
+            constraints.append(constraint_row)
+
+            # Set constant values.
+            # total_capacity_out = 0
+            # for outgoing_edge in outgoing_edges:
+            #     total_capacity_out += outgoing_edge.get_capacity()
+            # constants.append(total_capacity_out)
+            constants.append(0)
 
     logger.info('obj: {0}'.format(objective))
     logger.info('constraints: {0}'.format(constraints))