abstractions