Updated abstraction