abstraction fixes