More abstraction