abstraction dep