abstraction-layer