It would be much better if learner.py was not one giant file but rather a subpackage with separate modules for various subparts. This would make future additions much easier to deal with. We should strive to keep the imports the same as much as possible.
I think this issue should be handled first before any other major issues for v2.5.