mac-learning: Refactor to increase generality.