diff --git a/common/lib/xmodule/progress.py b/common/lib/xmodule/progress.py
deleted file mode 100644
index 70c8ec9da1..0000000000
--- a/common/lib/xmodule/progress.py
+++ /dev/null
@@ -1,157 +0,0 @@
-'''
-Progress class for modules. Represents where a student is in a module.
-
-Useful things to know:
- - Use Progress.to_js_status_str() to convert a progress into a simple
- status string to pass to js.
- - Use Progress.to_js_detail_str() to convert a progress into a more detailed
- string to pass to js.
-
-In particular, these functions have a canonical handing of None.
-
-For most subclassing needs, you should only need to reimplement
-frac() and __str__().
-'''
-
-from collections import namedtuple
-import numbers
-
-
-class Progress(object):
- '''Represents a progress of a/b (a out of b done)
-
- a and b must be numeric, but not necessarily integer, with
- 0 <= a <= b and b > 0.
-
- Progress can only represent Progress for modules where that makes sense. Other
- modules (e.g. html) should return None from get_progress().
-
- TODO: add tag for module type? Would allow for smarter merging.
- '''
-
- def __init__(self, a, b):
- '''Construct a Progress object. a and b must be numbers, and must have
- 0 <= a <= b and b > 0
- '''
-
- # Want to do all checking at construction time, so explicitly check types
- if not (isinstance(a, numbers.Number) and
- isinstance(b, numbers.Number)):
- raise TypeError('a and b must be numbers. Passed {0}/{1}'.format(a, b))
-
- if not (0 <= a <= b and b > 0):
- raise ValueError(
- 'fraction a/b = {0}/{1} must have 0 <= a <= b and b > 0'.format(a, b))
-
- self._a = a
- self._b = b
-
- def frac(self):
- ''' Return tuple (a,b) representing progress of a/b'''
- return (self._a, self._b)
-
- def percent(self):
- ''' Returns a percentage progress as a float between 0 and 100.
-
- subclassing note: implemented in terms of frac(), assumes sanity
- checking is done at construction time.
- '''
- (a, b) = self.frac()
- return 100.0 * a / b
-
- def started(self):
- ''' Returns True if fractional progress is greater than 0.
-
- subclassing note: implemented in terms of frac(), assumes sanity
- checking is done at construction time.
- '''
- return self.frac()[0] > 0
-
- def inprogress(self):
- ''' Returns True if fractional progress is strictly between 0 and 1.
-
- subclassing note: implemented in terms of frac(), assumes sanity
- checking is done at construction time.
- '''
- (a, b) = self.frac()
- return a > 0 and a < b
-
- def done(self):
- ''' Return True if this represents done.
-
- subclassing note: implemented in terms of frac(), assumes sanity
- checking is done at construction time.
- '''
- (a, b) = self.frac()
- return a == b
-
- def ternary_str(self):
- ''' Return a string version of this progress: either
- "none", "in_progress", or "done".
-
- subclassing note: implemented in terms of frac()
- '''
- (a, b) = self.frac()
- if a == 0:
- return "none"
- if a < b:
- return "in_progress"
- return "done"
-
- def __eq__(self, other):
- ''' Two Progress objects are equal if they have identical values.
- Implemented in terms of frac()'''
- if not isinstance(other, Progress):
- return False
- (a, b) = self.frac()
- (a2, b2) = other.frac()
- return a == a2 and b == b2
-
- def __ne__(self, other):
- ''' The opposite of equal'''
- return not self.__eq__(other)
-
- def __str__(self):
- ''' Return a string representation of this string.
-
- subclassing note: implemented in terms of frac().
- '''
- (a, b) = self.frac()
- return "{0}/{1}".format(a, b)
-
- @staticmethod
- def add_counts(a, b):
- '''Add two progress indicators, assuming that each represents items done:
- (a / b) + (c / d) = (a + c) / (b + d).
- If either is None, returns the other.
- '''
- if a is None:
- return b
- if b is None:
- return a
- # get numerators + denominators
- (n, d) = a.frac()
- (n2, d2) = b.frac()
- return Progress(n + n2, d + d2)
-
- @staticmethod
- def to_js_status_str(progress):
- '''
- Return the "status string" version of the passed Progress
- object that should be passed to js. Use this function when
- sending Progress objects to js to limit dependencies.
- '''
- if progress is None:
- return "NA"
- return progress.ternary_str()
-
- @staticmethod
- def to_js_detail_str(progress):
- '''
- Return the "detail string" version of the passed Progress
- object that should be passed to js. Use this function when
- passing Progress objects to js to limit dependencies.
- '''
- if progress is None:
- return "NA"
- return str(progress)
diff --git a/common/lib/xmodule/tests/test_stringify.py b/common/lib/xmodule/tests/test_stringify.py
deleted file mode 100644
index 62d7683886..0000000000
--- a/common/lib/xmodule/tests/test_stringify.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from nose.tools import assert_equals
-from lxml import etree
-from stringify import stringify_children
-
-def test_stringify():
- html = '''Hi
there Bruce!
'''
- xml = etree.fromstring(html)
- out = stringify_children(xml)
- assert_equals(out, '''Hi there Bruce!
''')
diff --git a/common/lib/xmodule/html_checker.py b/common/lib/xmodule/xmodule/html_checker.py
similarity index 100%
rename from common/lib/xmodule/html_checker.py
rename to common/lib/xmodule/xmodule/html_checker.py
diff --git a/common/lib/xmodule/xmodule/html_module.py b/common/lib/xmodule/xmodule/html_module.py
index b2a5df9803..7c3456e5ad 100644
--- a/common/lib/xmodule/xmodule/html_module.py
+++ b/common/lib/xmodule/xmodule/html_module.py
@@ -5,11 +5,11 @@ import os
import sys
from lxml import etree
-from xmodule.x_module import XModule
-from xmodule.xml_module import XmlDescriptor
-from xmodule.editing_module import EditingDescriptor
-from stringify import stringify_children
-from html_checker import check_html
+from .x_module import XModule
+from .xml_module import XmlDescriptor
+from .editing_module import EditingDescriptor
+from .stringify import stringify_children
+from .html_checker import check_html
log = logging.getLogger("mitx.courseware")
diff --git a/common/lib/xmodule/stringify.py b/common/lib/xmodule/xmodule/stringify.py
similarity index 100%
rename from common/lib/xmodule/stringify.py
rename to common/lib/xmodule/xmodule/stringify.py
diff --git a/common/lib/xmodule/tests/__init__.py b/common/lib/xmodule/xmodule/tests/__init__.py
similarity index 100%
rename from common/lib/xmodule/tests/__init__.py
rename to common/lib/xmodule/xmodule/tests/__init__.py
diff --git a/common/lib/xmodule/tests/test_export.py b/common/lib/xmodule/xmodule/tests/test_export.py
similarity index 100%
rename from common/lib/xmodule/tests/test_export.py
rename to common/lib/xmodule/xmodule/tests/test_export.py
diff --git a/common/lib/xmodule/tests/test_files/choiceresponse_checkbox.xml b/common/lib/xmodule/xmodule/tests/test_files/choiceresponse_checkbox.xml
similarity index 100%
rename from common/lib/xmodule/tests/test_files/choiceresponse_checkbox.xml
rename to common/lib/xmodule/xmodule/tests/test_files/choiceresponse_checkbox.xml
diff --git a/common/lib/xmodule/tests/test_files/choiceresponse_radio.xml b/common/lib/xmodule/xmodule/tests/test_files/choiceresponse_radio.xml
similarity index 100%
rename from common/lib/xmodule/tests/test_files/choiceresponse_radio.xml
rename to common/lib/xmodule/xmodule/tests/test_files/choiceresponse_radio.xml
diff --git a/common/lib/xmodule/tests/test_files/coderesponse.xml b/common/lib/xmodule/xmodule/tests/test_files/coderesponse.xml
similarity index 100%
rename from common/lib/xmodule/tests/test_files/coderesponse.xml
rename to common/lib/xmodule/xmodule/tests/test_files/coderesponse.xml
diff --git a/common/lib/xmodule/tests/test_files/formularesponse_with_hint.xml b/common/lib/xmodule/xmodule/tests/test_files/formularesponse_with_hint.xml
similarity index 100%
rename from common/lib/xmodule/tests/test_files/formularesponse_with_hint.xml
rename to common/lib/xmodule/xmodule/tests/test_files/formularesponse_with_hint.xml
diff --git a/common/lib/xmodule/tests/test_files/imageresponse.xml b/common/lib/xmodule/xmodule/tests/test_files/imageresponse.xml
similarity index 100%
rename from common/lib/xmodule/tests/test_files/imageresponse.xml
rename to common/lib/xmodule/xmodule/tests/test_files/imageresponse.xml
diff --git a/common/lib/xmodule/tests/test_files/multi_bare.xml b/common/lib/xmodule/xmodule/tests/test_files/multi_bare.xml
similarity index 100%
rename from common/lib/xmodule/tests/test_files/multi_bare.xml
rename to common/lib/xmodule/xmodule/tests/test_files/multi_bare.xml
diff --git a/common/lib/xmodule/tests/test_files/multichoice.xml b/common/lib/xmodule/xmodule/tests/test_files/multichoice.xml
similarity index 100%
rename from common/lib/xmodule/tests/test_files/multichoice.xml
rename to common/lib/xmodule/xmodule/tests/test_files/multichoice.xml
diff --git a/common/lib/xmodule/tests/test_files/optionresponse.xml b/common/lib/xmodule/xmodule/tests/test_files/optionresponse.xml
similarity index 100%
rename from common/lib/xmodule/tests/test_files/optionresponse.xml
rename to common/lib/xmodule/xmodule/tests/test_files/optionresponse.xml
diff --git a/common/lib/xmodule/tests/test_files/stringresponse_with_hint.xml b/common/lib/xmodule/xmodule/tests/test_files/stringresponse_with_hint.xml
similarity index 100%
rename from common/lib/xmodule/tests/test_files/stringresponse_with_hint.xml
rename to common/lib/xmodule/xmodule/tests/test_files/stringresponse_with_hint.xml
diff --git a/common/lib/xmodule/tests/test_files/symbolicresponse.xml b/common/lib/xmodule/xmodule/tests/test_files/symbolicresponse.xml
similarity index 100%
rename from common/lib/xmodule/tests/test_files/symbolicresponse.xml
rename to common/lib/xmodule/xmodule/tests/test_files/symbolicresponse.xml
diff --git a/common/lib/xmodule/tests/test_files/truefalse.xml b/common/lib/xmodule/xmodule/tests/test_files/truefalse.xml
similarity index 100%
rename from common/lib/xmodule/tests/test_files/truefalse.xml
rename to common/lib/xmodule/xmodule/tests/test_files/truefalse.xml
diff --git a/common/lib/xmodule/tests/test_import.py b/common/lib/xmodule/xmodule/tests/test_import.py
similarity index 100%
rename from common/lib/xmodule/tests/test_import.py
rename to common/lib/xmodule/xmodule/tests/test_import.py
diff --git a/common/lib/xmodule/xmodule/tests/test_stringify.py b/common/lib/xmodule/xmodule/tests/test_stringify.py
new file mode 100644
index 0000000000..1c6ee855f3
--- /dev/null
+++ b/common/lib/xmodule/xmodule/tests/test_stringify.py
@@ -0,0 +1,10 @@
+from nose.tools import assert_equals
+from lxml import etree
+from xmodule.stringify import stringify_children
+
+def test_stringify():
+ text = 'Hi there Bruce!
'
+ html = '''{0}'''.format(text)
+ xml = etree.fromstring(html)
+ out = stringify_children(xml)
+ assert_equals(out, text)