abstractions implemented.