diff --git a/tracker/fltconversion.py b/tracker/fltconversion.py
index e42b432..63a7e63 100644
--- a/tracker/fltconversion.py
+++ b/tracker/fltconversion.py
@@ -134,8 +134,7 @@
     'phase_map, approvals_to_labels, labels_re')
 
 
-# TODO: change to FlaskInternalTask when convert to flask
-class FLTConvertTask(jsonfeed.InternalTask):
+class FLTConvertTask(jsonfeed.FlaskInternalTask):
   """FLTConvert converts current Type=Launch issues into Type=FLT-Launch."""
 
   def AssertBasePermission(self, mr):
@@ -531,11 +530,8 @@
     return tracker_bizobj.MakeFieldValue(
         field_id, None, None, user_id, None, None, False)
 
-  # def GetFLTConvertTask(self, **kwargs):
-  #   return self.handler(**kwargs)
-
-  # def PostFLTConvertTask(self, **kwargs):
-  #   return self.handler(**kwargs)
+  def PostFLTConvertTask(self, **kwargs):
+    return self.handler(**kwargs)
 
 
 def ConvertMLabels(
diff --git a/tracker/test/componentdetail_test.py b/tracker/test/componentdetail_test.py
index 18886bc..6186582 100644
--- a/tracker/test/componentdetail_test.py
+++ b/tracker/test/componentdetail_test.py
@@ -12,7 +12,10 @@
 
 from mock import Mock, patch
 
-import mox
+try:
+  from mox3 import mox
+except ImportError:
+  import mox
 
 from features import filterrules_helpers
 from framework import permissions
diff --git a/tracker/test/fieldcreate_test.py b/tracker/test/fieldcreate_test.py
index 580d095..4a8c919 100644
--- a/tracker/test/fieldcreate_test.py
+++ b/tracker/test/fieldcreate_test.py
@@ -8,7 +8,10 @@
 from __future__ import division
 from __future__ import absolute_import
 
-import mox
+try:
+  from mox3 import mox
+except ImportError:
+  import mox
 import mock
 import unittest
 import logging
diff --git a/tracker/test/fielddetail_test.py b/tracker/test/fielddetail_test.py
index f9f27b4..5b31fa3 100644
--- a/tracker/test/fielddetail_test.py
+++ b/tracker/test/fielddetail_test.py
@@ -8,7 +8,10 @@
 from __future__ import division
 from __future__ import absolute_import
 
-import mox
+try:
+  from mox3 import mox
+except ImportError:
+  import mox
 import unittest
 import logging
 
diff --git a/tracker/test/fltconversion_test.py b/tracker/test/fltconversion_test.py
index e0bae41..be66ad2 100644
--- a/tracker/test/fltconversion_test.py
+++ b/tracker/test/fltconversion_test.py
@@ -33,8 +33,7 @@
         config=fake.ConfigService(),
         template=mock.Mock(spec=template_svc.TemplateService),)
     self.mr = testing_helpers.MakeMonorailRequest()
-    self.task = fltconversion.FLTConvertTask(
-        'req', 'res', services=self.services)
+    self.task = fltconversion.FLTConvertTask(services=self.services)
     self.task.mr = self.mr
     self.issue = fake.MakeTestIssue(
         789, 1, 'summary', 'New', 111, issue_id=78901)
diff --git a/tracker/test/issueadmin_test.py b/tracker/test/issueadmin_test.py
index 751e414..c36a495 100644
--- a/tracker/test/issueadmin_test.py
+++ b/tracker/test/issueadmin_test.py
@@ -8,7 +8,10 @@
 from __future__ import division
 from __future__ import absolute_import
 
-import mox
+try:
+  from mox3 import mox
+except ImportError:
+  import mox
 import unittest
 
 from mock import Mock, patch
diff --git a/tracker/test/issueattachment_test.py b/tracker/test/issueattachment_test.py
index 9fccba5..f782f22 100644
--- a/tracker/test/issueattachment_test.py
+++ b/tracker/test/issueattachment_test.py
@@ -12,7 +12,10 @@
 
 from google.appengine.ext import testbed
 
-import mox
+try:
+  from mox3 import mox
+except ImportError:
+  import mox
 import webapp2
 
 from framework import gcs_helpers
diff --git a/tracker/test/issuedetailezt_test.py b/tracker/test/issuedetailezt_test.py
index d3b8327..fe3d22f 100644
--- a/tracker/test/issuedetailezt_test.py
+++ b/tracker/test/issuedetailezt_test.py
@@ -10,7 +10,10 @@
 
 import logging
 import mock
-import mox
+try:
+  from mox3 import mox
+except ImportError:
+  import mox
 import time
 import unittest
 
diff --git a/tracker/test/issueentry_test.py b/tracker/test/issueentry_test.py
index 4a64d7c..b7461ae 100644
--- a/tracker/test/issueentry_test.py
+++ b/tracker/test/issueentry_test.py
@@ -8,7 +8,10 @@
 from __future__ import division
 from __future__ import absolute_import
 
-import mox
+try:
+  from mox3 import mox
+except ImportError:
+  import mox
 import time
 import unittest
 
diff --git a/tracker/test/issuereindex_test.py b/tracker/test/issuereindex_test.py
index fe033b8..715da9a 100644
--- a/tracker/test/issuereindex_test.py
+++ b/tracker/test/issuereindex_test.py
@@ -10,7 +10,10 @@
 
 import unittest
 
-import mox
+try:
+  from mox3 import mox
+except ImportError:
+  import mox
 
 import settings
 from framework import permissions
diff --git a/tracker/test/templatecreate_test.py b/tracker/test/templatecreate_test.py
index 60db78b..78664c0 100644
--- a/tracker/test/templatecreate_test.py
+++ b/tracker/test/templatecreate_test.py
@@ -8,7 +8,10 @@
 from __future__ import division
 from __future__ import absolute_import
 
-import mox
+try:
+  from mox3 import mox
+except ImportError:
+  import mox
 import unittest
 import settings
 
diff --git a/tracker/test/templatedetail_test.py b/tracker/test/templatedetail_test.py
index 607996a..42fc46b 100644
--- a/tracker/test/templatedetail_test.py
+++ b/tracker/test/templatedetail_test.py
@@ -8,7 +8,10 @@
 from __future__ import division
 from __future__ import absolute_import
 
-import mox
+try:
+  from mox3 import mox
+except ImportError:
+  import mox
 import logging
 import unittest
 import settings
diff --git a/tracker/test/tracker_views_test.py b/tracker/test/tracker_views_test.py
index 797b079..ddc2a3e 100644
--- a/tracker/test/tracker_views_test.py
+++ b/tracker/test/tracker_views_test.py
@@ -11,7 +11,10 @@
 import logging
 import unittest
 
-import mox
+try:
+  from mox3 import mox
+except ImportError:
+  import mox
 
 from google.appengine.api import app_identity
 import ezt
