More abstraction and reorganization.