adding abstractions