diff --git a/bot3/control_loops/python/shooter.py b/bot3/control_loops/python/shooter.py
index 6efecad..60b3219 100755
--- a/bot3/control_loops/python/shooter.py
+++ b/bot3/control_loops/python/shooter.py
@@ -94,11 +94,11 @@
   shooter = Shooter()
   close_loop_x = []
   close_loop_U = []
-  velocity_goal = 300
+  velocity_goal = 350
   R = numpy.matrix([[0.0], [velocity_goal]])
-  for _ in pylab.linspace(0,1.99,200):
+  for _ in pylab.linspace(0,3.99,400):
     # Iterate the position up.
-    R = numpy.matrix([[R[0, 0] + 10.5], [velocity_goal]])
+    R = numpy.matrix([[R[0, 0] + velocity_goal / 100], [velocity_goal]])
     # Prevents the position goal from going beyond what is necessary.
     velocity_weight_scalar = 0.35
     max_reference = (
@@ -118,11 +118,12 @@
     shooter.Update(U)
     close_loop_x.append(shooter.X[1, 0])
     close_loop_U.append(U[0, 0] * 10)
+    print U[0, 0]
 
   #pylab.plotfile("shooter.csv", (0,1))
-  pylab.plot(pylab.linspace(0,1.99,200), close_loop_U)
+  pylab.plot(pylab.linspace(0,3.99,400), close_loop_U)
   #pylab.plotfile("shooter.csv", (0,2))
-  pylab.plot(pylab.linspace(0,1.99,200), close_loop_x)
+  pylab.plot(pylab.linspace(0,3.99,400), close_loop_x)
   pylab.show()
 
   # Simulate spin down.
diff --git a/bot3/control_loops/shooter/shooter_motor_plant.cc b/bot3/control_loops/shooter/shooter_motor_plant.cc
index 5dd32db..c71b96a 100644
--- a/bot3/control_loops/shooter/shooter_motor_plant.cc
+++ b/bot3/control_loops/shooter/shooter_motor_plant.cc
@@ -27,7 +27,7 @@
   Eigen::Matrix<double, 2, 1> L;
   L << 1.08905775674, 29.7111780621;
   Eigen::Matrix<double, 1, 2> K;
-  K << 1.42534042426, 0.758151303088;
+  K << 130.450278144, 2.19032372689;
   return StateFeedbackController<2, 1, 1>(L, K, MakeShooterPlantCoefficients());
 }
 
@@ -44,4 +44,4 @@
 }
 
 }  // namespace control_loops
-}  // namespace frc971
+}  // namespace bot3
diff --git a/bot3/control_loops/shooter/shooter_motor_plant.h b/bot3/control_loops/shooter/shooter_motor_plant.h
index 2207ab2..fa2237d 100644
--- a/bot3/control_loops/shooter/shooter_motor_plant.h
+++ b/bot3/control_loops/shooter/shooter_motor_plant.h
@@ -15,6 +15,6 @@
 StateFeedbackLoop<2, 1, 1> MakeShooterLoop();
 
 }  // namespace control_loops
-}  // namespace frc971
+}  // namespace bot3
 
-#endif  // FRC971_CONTROL_LOOPS_SHOOTER_SHOOTER_MOTOR_PLANT_H_
+#endif  // BOT3_CONTROL_LOOPS_SHOOTER_SHOOTER_MOTOR_PLANT_H_
