fixing the abstraction