abstraction cleanup