black-box abstractions, lexical scoping