Refactored Level.py; tests don't break now. Factors are stored in a list of tuples, rather than a simple list.