// Make this return true when this Command no longer needs to run execute()
 protected boolean isFinished() {
   if (m_angle > 0) {
     return HardwareAdapter.LeftDriveEncoderPID.onTarget(10) || isTimedOut();
   } else {
     return HardwareAdapter.RightDriveEncoderPID.onTarget(10) || isTimedOut();
   }
 }
 // Called just before this Command runs the first time
 protected void initialize() {
   HardwareAdapter.GyroPID.setPID(Constants.kGyroKp, Constants.kGyroKi, Constants.kGyroKd);
   if (m_angle > 0) {
     HardwareAdapter.LeftDriveEncoderPID.setSetpoint(m_clicks + HardwareAdapter.getLeftDriveEnc());
   } else {
     HardwareAdapter.RightDriveEncoderPID.setSetpoint(
         m_clicks + HardwareAdapter.getRightDriveEnc());
   }
   HardwareAdapter.GyroPID.setSetpoint(HardwareAdapter.kSpartanGyro.getAngle() + m_angle);
 }