Refine the abstraction and interfaces.