First step in modularizing libraries and making code more maintainable.
"Levelization" in the language of John Lakos is a set of techniques for reducing the dependencies between modules thereby making them easier to modify without breaking the whole system.