fixing abstraction