Decoupling the implementation of primitives.