abstraction fix