More closures

Insufficient encapsulation.
We need to be more general.
Introduce more abstractions.